Intereting Posts
Нужны ли Android / LDPI активы / иконки? Android проверяет статус WIFI (отключен или пользователь изменен WIFI) Как FLAG это? Нажатие кнопки меню вызывает сбои в действии без ActionBar Настройки Android замораживаются при использовании ADT Plugin v9 с Eclipse на Mac? Принудительное видео для открытия приложения Youtube на Android Как включить проверку линзы Android для аннотации @Nullable? Misbehavior при попытке сохранить набор строк с использованием SharedPreferences Прокрутите RecyclerView, чтобы отобразить выбранный элемент сверху. Когда использовать ShapeRenderer, Mesh + SpriteBatch, Box2D и Scene2D в Libgdx? Отменить регистрацию новых облачных сообщений Google Войдите в систему с помощью Facebook, если учетная запись уже связана с Google во время первоначальной регистрации в Firebase Android. Как создать простой календарь на Android Android zxing – предварительный просмотр камеры / просмотр поверхности растянут / искажен HttpURLConnection setConnectTimeout () не влияет FindViewById в фрагменте

Java.lang.RuntimeException: eglSwapBuffers не удалось: EGL_SUCCESS

У меня есть приложение OpenGL в Google Play Store, и я столкнулся с ежедневным исключением:

java.lang.RuntimeException: eglSwapBuffers failed: EGL_SUCCESS at android.opengl.GLSurfaceView$EglHelper.throwEglException(GLSurfaceView.java:1085) at android.opengl.GLSurfaceView$EglHelper.swap(GLSurfaceView.java:1043) at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1369) at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1123) 

Проблема в том, что на всех моих смартфонах я не могу воспроизвести эту ошибку. Я уже связался с Google для любой информации об устройстве, но у них их нет (так они говорят). Информация о платформе в исключении устанавливается в «OTHER».

Я нашел некоторые подсказки в сети, что эта ошибка может быть от устройства Samsung Galaxy Y, и я нашел некоторые предложения, которые включают:

 android:configChanges="orientation|screenSize" 

В файле манифеста Android, но это не работает!

И, конечно, у меня есть обработка onPause и onResume для моей поверхности GL, которая, если нет, создает другие проблемы eglSwapBuffer.

У кого-нибудь есть решение этой проблемы?

Благодаря!

Solutions Collecting From Web of "Java.lang.RuntimeException: eglSwapBuffers не удалось: EGL_SUCCESS"

Нет решения, просто комментарий

По некоторым причинам я не могу комментировать предыдущие сообщения, но у меня есть некоторые замечания, которые, возможно, могут помочь.

У нас та же проблема и мы стараемся найти решение … Мы резко уменьшили размер наших текстур, и теперь ни один не превышает 1024×900 (не забывайте о шрифтах). Но нам все еще нужны несколько, и проблема все еще существует. Мы определили проблемные устройства на следующие:

 Samsung Galaxy Y (GT-S5360 GT-S5360B GT-S5360L GT-S5363 GT-S5368 GT-S5369 SCH-I509 SCH-i509) Samsung Galaxy Y Duos (GT-S6102 GT-S6102B GT-S6102E ivory) Samsung Galaxy Ace (GT-S5830 GT-S5830B GT-S5830C GT-S5830D GT-S5830G GT-S5830L GT-S5830M GT-S5830T GT-S5830i GT-S5838 GT-S5839i GT-S6358 SCH-I619 SHW-M240S) Samsung Galaxy Ace Duos (GT-S6802 GT-S6352 GT-S6802B SCH-I579 SCH-I589 SCH-i579 SCH-i589) Samsung Galaxy Mini (GT-S5570 GT-S5570B GT-S5570I GT-S5570L GT-S5578 SGH-T499 SGH-T499V SGH-T499Y) Samsung Galaxy Pocket (GT-S5300 GT-S5300B GT-S5302 GT-S5302B) 

Также ошибка сообщается в двух вариантах с разными номерами строк:

 java.lang.RuntimeException: eglSwapBuffers failed: EGL_SUCCESS at android.opengl.GLSurfaceView$EglHelper.throwEglException(GLSurfaceView.java:1099) at android.opengl.GLSurfaceView$EglHelper.swap(GLSurfaceView.java:1057) at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1389) at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1138) java.lang.RuntimeException: eglSwapBuffers failed: EGL_SUCCESS at android.opengl.GLSurfaceView$EglHelper.throwEglException(GLSurfaceView.java:1085) at android.opengl.GLSurfaceView$EglHelper.swap(GLSurfaceView.java:1043) at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1369) at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1123) 

Я не знаю, полезен ли я здесь, но в случае, если это поможет …

Возможно, вашей памяти недостаточно для загрузки всех данных. Я тоже встретил эту проблему, когда делал свою игру с AndEngine, слишком много Atlas размером более 1024×1024, данные могут быть сломаны.

Нет решения, просто наблюдения.

Вызов eglSwapBuffers возвращает false . Следующая обработка ошибок не справляется с тем, что нет ошибки – возможно, она не была установлена ​​EGL; ИЛИ неверное значение возвращается.

Я не нашел подходящих источников. Эти устройства либо запускают исправленный GLSurfaceView s (поиск трассировки стека не нашел ничего …), либо они используют промежуточную версию (ну, я не знаю, был ли 4.0.2 официальным, grepcode содержит только 4.0.1 и 4.0.3); ИЛИ Я что-то пропустил.

Вы должны отслеживать, какие именно устройства / версии для Android работают в этой проблеме. Затем вы можете попытаться решить эту проблему, предоставив исправленный GLSurfaceView самостоятельно или используя другую конфигурацию EGL, при условии, что проблема может быть устранена вообще. Есть ошибки , которые остаются необработанными в течение нескольких недель; Интересно, какие проблемы возникают перед ответственной командой …

Решением, которое я завершил, было добавление глобального обработчика исключений, чтобы поймать эту ошибку (поскольку она выбрасывается за пределы любого потока, который я контролирую).

 Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {...}) 

Поэтому, по крайней мере, приложение не сбой, и я могу выразить сообщение, объясняющее ситуацию.