Intereting Posts
Как я могу присвоить растровое изображение android растровому изображению из другого размера (алиасы drawable-large-mdpi в drawable-hdpi) Удалить разрыв строки в TabLayout Закрытое исключение Android Sq Lite StringIndexOutOfBoundsException из SpannableStringInternal Получение токена учетной записи Google из GoogleApiClient без разрешения GET_ACCOUNTS Является ли встроенная анимация подходящей для длительной медленной анимации? Logcat заполнен сообщением «Неожиданное значение от nativeGetEnabledTags: 0» – как избавиться от этого? Проверьте, включен ли gps в Kitkat (4.4) Есть ли простой способ добавить границу к верхней и нижней части Android View? Ошибка запуска Android Studio v1.2.0: java.lang.NullPointerException Кордовы android build не срабатывают немедленно Как установить радиус закругленного угла для рисования цвета с помощью xml? Правильный способ вызова super.onStop () при незарегистрировании слушателя Как зарегистрировать свою учетную запись Google в эмуляторе Android, работающем под управлением 2.2 api 8? RelativeLayout выровнять родительский * боковой * + margin * side *

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() {...}) 

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