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)

更多相关文章

  1. 全志A64 Android7.1屏蔽使用按键进入安全模式的方法
  2. Android使用AttributeSet自定义控件的方法
  3. 让Android不播放关机动画,而是显示一个关机进度条的方法
  4. android下拉菜单spinner的使用方法
  5. Android第五期 - 更新自己的apk本地与网络两种方法
  6. Android HandlerThread使用方法
  7. android-2.2以下杀进程方法:restartPackage();
  8. 【Android 开发】:UI控件之拖动条控件 SeekBar的使用方法
  9. Android NullPointerException解决方法

随机推荐

  1. Android使用GPS定位
  2. Design TIps for Android(安卓)Applicati
  3. Win8风格的按钮、ToggleButton、SeekBar
  4. android acitonbar(toolbar)自定义溢出菜
  5. Android的Layout及其Param
  6. android 系统自带的图标集合
  7. android 权限
  8. Android模拟器太慢怎么办?加快Android模拟
  9. Android换行(textView)
  10. Android(安卓)WindowManager 窗口泄漏的