读书人

帮忙看一上这个异常不胜感激!

发布时间: 2012-10-20 14:12:48 作者: rapoo

帮忙看一下这个错误,不胜感激!!!
01-02 01:02:04.648: E/AndroidRuntime(1337): FATAL EXCEPTION: GLThread 10
01-02 01:02:04.648: E/AndroidRuntime(1337): java.lang.IllegalArgumentException: Make sure the SurfaceView or associated SurfaceHolder has a valid Surface
01-02 01:02:04.648: E/AndroidRuntime(1337): at com.google.android.gles_jni.EGLImpl._eglCreateWindowSurface(Native Method)
01-02 01:02:04.648: E/AndroidRuntime(1337): at com.google.android.gles_jni.EGLImpl.eglCreateWindowSurface(EGLImpl.java:87)
01-02 01:02:04.648: E/AndroidRuntime(1337): at android.opengl.GLSurfaceView$DefaultWindowSurfaceFactory.createWindowSurface(GLSurfaceView.java:718)
01-02 01:02:04.648: E/AndroidRuntime(1337): at android.opengl.GLSurfaceView$EglHelper.createSurface(GLSurfaceView.java:975)
01-02 01:02:04.648: E/AndroidRuntime(1337): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1335)
01-02 01:02:04.648: E/AndroidRuntime(1337): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1118)

我每次开机只要一选择这个launcher就会报这样的错,可是把他的错误提示框点掉之后程序依旧可以运行,没什么不对的。直到下一次开机选择这个launcher就还会有这个错误,Make sure the SurfaceView or associated SurfaceHolder has a valid Surface这个错误怎么解决啊,坐等大神。

[解决办法]
要在surfaceCreated 之后才把surfaceHolder传到系统函数进去。
surfaceChanged之后也要及时更新。


public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
surfaceHolder = holder ;
Log.v(TAG, "surfacedChanged " + "width="+width+"height="+height+"Format="+format) ;

}

public void surfaceCreated(SurfaceHolder holder) {
Log.v(TAG, "surfacedCreated " ) ;
surfaceHolder = holder ;
}

读书人网 >Android

热点推荐