2012-01-08 8 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

あなたはありません。このチュートリアルでは、から発信されたラインを共有することはできますか? –

+0

私の問題は、クラッシュが発生した行をローカライズできないことです。私はアプリケーション全体にステップアップして、 "アクティビティ"の "onResume"機能を終了するとクラッシュが表示されます。 – Zelig

答えて

3

エミュレータはopengl es 2をサポートしていないので、現在はopengl es 1しかサポートしていません。コードを実行するには実際のデバイスが必要です。

+0

Android 2.3.3で実際のGalaxy Sを試しましたが、システムがアプリケーションのインストールを拒否しました。 OpenGL 2.0はAndroid 2.2 APIレベル8以降で動作するはずです。 – Zelig

1

私は最も長い間同じ問題を抱えていました。私はほとんど諦めました。 レンダラーを設定する前に、作成されたサーフェイスビュークラスでコンテキストクライアントのバージョンを設定してください。

チュートリアルに基づいて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); 
}//.. 
関連する問題