在GLSurfaceView上调用onResume时,GLThread无法启动

时间:2013-08-02 03:56:51

标签: android onresume glsurfaceview opengl-es-1.1

我正在使用OpenGLES 1.1(使用Android静态API(GLES11))编写游戏,每当我的游戏活动进入后台(按Home)时,它就会以黑屏返回。

我知道纹理和资源已经丢失,但主要问题是GLThread不再运行(游戏逻辑基于GLThread运行)

我从logcat得到的错误是:

E/GLSurfaceView(2604): eglCreateWindowSurface
E/GLSurfaceView(2604): java.lang.IllegalArgumentException: Make sure the SurfaceView or associated SurfaceHolder has a valid Surface
E/GLSurfaceView(2604):  at com.google.android.gles_jni.EGLImpl._eglCreateWindowSurface(Native Method)
E/GLSurfaceView(2604):  at com.google.android.gles_jni.EGLImpl.eglCreateWindowSurface(EGLImpl.java:92)
E/GLSurfaceView(2604):  at android.opengl.GLSurfaceView$DefaultWindowSurfaceFactory.createWindowSurface(GLSurfaceView.java:808)
E/GLSurfaceView(2604):  at android.opengl.GLSurfaceView$EglHelper.createSurface(GLSurfaceView.java:1077)
E/GLSurfaceView(2604):  at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1471)
E/GLSurfaceView(2604):  at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)

我在活动onPause上使用了glSurfaceView.onPause,并在活动onResume上使用了glSurfaceView.onResume ... 任何人都可以给我一个提示或解释究竟是什么导致这个错误?

1 个答案:

答案 0 :(得分:0)

每次调用onResume时我都会重新创建GLSurfaceView(或者在第一次调用它时创建它)...