OpenGL,Android注意事项初始化顺序 NullPointer
16lz
2021-12-04
BUG:
Caused by: java.lang.IllegalStateException: setRenderer has already been called for this instance.
或者NullPointer错误
解决方法:
把setEGLContextClientVersion(2);挪到setRenderer()前面。方法的注释上写到“If this method is called, it must be called before setRenderer(Renderer)
is called.
”。
拓展:
并且setRender()之后之前的方法调用顺序,也是固定。详情可以看代码注释,如下:
This method should be called once and only once in the life-cycle of a GLSurfaceView.
(这些方法只能在CLSurfaceView中有且只能调用一次)
The following GLSurfaceView methods can only be called before setRenderer is called:
(setRender前调用,当然也包括setEGLContextClientVersion(2))
setEGLConfigChooser(boolean)
setEGLConfigChooser(EGLConfigChooser)
setEGLConfigChooser(int, int, int, int, int, int)
The following GLSurfaceView methods can only be called after setRenderer is called:
(setRender后调用)
getRenderMode()
onPause()
onResume()
queueEvent(Runnable)
requestRender()
setRenderMode(int)
更多相关文章
- Android(安卓)NDK 开发
- android之android.os.NetworkOnMainThreadException错误
- android 可滑动的View
- 自定义全屏Dialog
- android ndk调用Log.getStackTraceString(new Throwable())输出
- Android(安卓)调用系统浏览器 出现activitynotfoundexception 解
- android获得mac和ip
- Android进程与线程基本知识四
- 【android】当数据库需要更新时我们该怎么办?