Ошибка eglSwapBuffers: EGL_BAD_ALLOC AndEngine Android

Я разрабатываю игру в движке And, который генерирует исключение. На самом деле я не знаю, где происходят исключения. Об этом сообщается на рынке много раз.

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) 

Есть ли какое-нибудь решение для этого?

Эта ошибка может возникнуть, если вы не уведомите GLSurfaceView о состоянии транзита состояния вашей деятельности. См. Следующий абзац отсюда: http://developer.android.com/reference/android/opengl/GLSurfaceView.html

Активность Жизненный цикл

GLSurfaceView должен быть уведомлен, когда действие приостановлено и возобновлено. Клиенты GLSurfaceView должны вызывать onPause (), когда действие приостанавливается и onResume (), когда активность возобновляется. Эти вызовы позволяют GLSurfaceView приостанавливать и возобновлять поток рендеринга, а также разрешать GLSurfaceView выпускать и воссоздавать отображение OpenGL.

Я не знаю, как это работает.

По моему опыту (что характерно для моей Samsung Note и ни одного другого устройства Android, которое я тестировал до сих пор), это то, что EGL_BAD_ALLOC будет неправильно создан eglSwapBuffers() вместо EGL_BAD_CURRENT_SURFACE . Если ваш код обрабатывает повторное создание поверхности, это должно быть тривиально, чтобы справиться с этим неясным случаем.