2012-02-15 5 views
5

예외를 throw하는 And 엔진에서 게임을 개발했습니다. 사실 나는 예외가 발생하는 지점을 모른다. 그것은 시장에서 많은 시간 동안보고됩니다.eglSwapBuffers failed : 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) 

이 중 어떤 해결책이 있습니까?

+0

이 문제의 해결책을 찾았습니까? –

+0

아직 해결 방법이 없습니까? – glo

+0

내 앱이 Nexus 7에서 정상적으로 작동했지만 Sony Ericsson Xperia에서는 실패했습니다. 내가 사용하고있는 유일한 EGL 호출 (ConfigChooser)을 제거했고 Xperia에서 잘 작동했다. – paj7777

답변

2

이 오류는 GLSurfaceView에 활동의 상태 전이에 대해 알리지 않을 때 발생할 수 있습니다. 여기에서 다음 단락을 참조하십시오 http://developer.android.com/reference/android/opengl/GLSurfaceView.html

활동 라이프 사이클

활동이 일시 정지 및 이 재개 될 때 GLSurfaceView를 통보해야합니다. GLSurfaceView 클라이언트는 작업이 일시 중지되면 onPause()를 호출해야하며 작업이 다시 시작될 때 onResume()을 호출해야합니다. 이러한 호출은 이며, GLSurfaceView가 렌더링 스레드를 일시 중지했다가 다시 시작하도록 허용하고, 은 GLSurfaceView가 OpenGL 디스플레이를 해제하고 다시 만들도록 허용합니다.

나는 어떻게 이것을 처리할지 모르겠다.

+1

찾고 있지만 onpause 및 onresume 이미 처리됩니다. 그 밖의 무엇을 당신은 제안합니까 ?? –

+0

죄송합니다.하지만이 오류의 다른 원인에 대해서는 알지 못합니다. GLSurfaceView에 알림이 수정되었습니다. 도움이되는 경우 : 홈 화면과 게임을 반복적으로 전환하여 직접 재현 해보십시오. 오류가 발생한 곳입니다. – haffax

+0

관심을 가져 주셔서 감사합니다. –

1

제 경험상 (삼성 노트와 지금까지 테스트 해 본 다른 안드로이드 장치에만 해당) EGL_BAD_ALLOCEGL_BAD_CURRENT_SURFACE 대신 eglSwapBuffers()으로 잘못 생성됩니다. 코드가 서페이스를 다시 만드는 것을 처리하는 경우이 애매한 경우도 처리해야합니다.

관련 문제