OpenGL,Android注意事项初始化顺序 NullPointer
16lz
2021-01-23
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)
更多相关文章
- 全志A64 Android7.1屏蔽使用按键进入安全模式的方法
- Android使用AttributeSet自定义控件的方法
- 让Android不播放关机动画,而是显示一个关机进度条的方法
- android下拉菜单spinner的使用方法
- Android第五期 - 更新自己的apk本地与网络两种方法
- Android HandlerThread使用方法
- android-2.2以下杀进程方法:restartPackage();
- 【Android 开发】:UI控件之拖动条控件 SeekBar的使用方法
- Android NullPointerException解决方法