2012-02-15 27 views
5

を私は例外をスローでゲームエンジンを開発メートル。実際には例外が発生する箇所はわかりません。それは多くの時間多くの市場で報告されています。eglSwapBuffersに失敗しました:EGL_BAD_ALLOC AndEngine Androidの

java.lang.RuntimeException: eglSwapBuffers failed: EGL_BAD_ALLOC 
at android.opengl.GLSurfaceView$EglHelper.throwEglException(GLSurfaceView.java:1080) 
at android.opengl.GLSurfaceView$EglHelper.swap(GLSurfaceView.java:1038) 
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1364) 
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1118) 

この解決策はありますか?あなたがあなたの活動の状態transistionsについてGLSurfaceViewに通知していないとき

+0

この問題の解決策をお探しですか? –

+0

まだ解決策はありますか? – glo

+0

私のアプリはNexus 7で正常に動作していましたが、Sony Ericsson Xperiaでは失敗していました。私が使用していた唯一のEGL呼び出し(ConfigChooser)を削除し、Xperia上で正常に動作しました。 – paj7777

答えて

2

このエラーが発生する可能性があります。 ここから次の段落を参照してください。http://developer.android.com/reference/android/opengl/GLSurfaceView.html

活動ライフサイクル

活動が一時停止と が再開されたときにA GLSurfaceViewに通知しなければなりません。 GLSurfaceViewクライアントは、アクティビティが一時停止したときにonPause()を呼び出す必要があり、アクティビティが再開したときにonResume()を呼び出す必要があります。これらの呼び出し はGLSurfaceViewは、レンダリングスレッドを一時停止し、再開することができ、また、 GLSurfaceViewは、OpenGL表示を解除し、再作成することができます。

私はandengineは、このかかわらを処理する方法を知りません。私の経験で

+1

しかし、onpauseとonresumeはすでに処理されています。他に何をお勧めしますか? –

+0

申し訳ありませんが、このエラーの原因がわかりません。 GLSurfaceViewに通知してくれました。助けが必要な場合:ホーム画面とゲームを繰り返し切り替えることで、自分自身を作り直してみてください。これが私にとって誤りが起こった場所です。 – haffax

+0

私はそれに興味を持っていただきありがとうございます。 –

1

は(私のサムスンのノート、そして私がこれまでテストした無他のAndroidデバイスに固有である)、EGL_BAD_ALLOCが誤っeglSwapBuffers()の代わりEGL_BAD_CURRENT_SURFACEによって生成されるということです。コードがサーフェスの再作成を処理する場合は、このあいまいなケースも処理するのは簡単です。

関連する問題