2012-01-08 112 views
0

由於我是OpenGL編程新手,我試圖測試OpenGL2.0教程中顯示的示例代碼。應用程序編譯時沒有錯誤,但是當我嘗試在模擬器中運行它時,它會崩潰。 下面是什麼DDMS說:使用OpenGL2.0教程的示例代碼在運行時崩潰

01-08 08:03:41.365: E/AndroidRuntime(380): FATAL EXCEPTION: GLThread 8 
01-08 08:03:41.365: E/AndroidRuntime(380): java.lang.IllegalArgumentException: No configs match configSpec 
01-08 08:03:41.365: E/AndroidRuntime(380): at android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:760) 
01-08 08:03:41.365: E/AndroidRuntime(380): at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:916) 
01-08 08:03:41.365: E/AndroidRuntime(380): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1246) 
01-08 08:03:41.365: E/AndroidRuntime(380): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1116) 

誰能解釋我要崩潰的原因是什麼?

+0

你能不共享,這是源自,在教程中的線? – 2012-01-08 08:30:13

+0

我的問題是我無法本地化發生崩潰的行。我進入了整個應用程序,當我退出「活動」的「onResume」功能時出現崩潰。 – Zelig 2012-01-08 09:16:59

回答

3

這是因爲模擬器不支持opengl es 2,它目前只支持opengl es 1.您將需要一個實際的設備來運行您的代碼。

+0

我嘗試過使用Android 2.3.3的Galaxy S,系統拒絕安裝應用程序。自從Android 2.2 API級別8以來,OpenGL 2.0應該可以工作。 – Zelig 2012-01-08 14:22:51

1

我在最長的時間裏遇到了同樣的問題。我幾乎放棄了。 確保在創建的surfaceview類中設置渲染器之前設置了上下文客戶端版本。

根據教程您對CALSS constuctor應該是這樣的:

public MyGLSurfaceView(Context context){ 
    super(context); 
    // Create an OpenGL ES 2.0 context 
    setEGLContextClientVersion(2); 
    // Set the Renderer for drawing on the GLSurfaceView 
    setRenderer(new MyRenderer()); 
    // Render the view only when there is a change in the drawing data 
    setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY); 
}//..