Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android – GLSurfaceView EGL_BAD_ALLOC

Mi programa cambia entre dos Activities que cada una infla un GLSurfaceView derivado que utiliza VBOs. Después de alternar entre las dos actividades varias veces, el programa se bloquea y produce la siguiente excepción. Cada vez que hay un cambio de contexto, los buffers VBO se borran, se llama onStop () y se inflama una nueva instancia del GLSurfaceView de la siguiente actividad. Refactoreé el programa para funcionar en solamente un GLSurfaceView y la Activity , y el programa parece funcionar sin incidente. Sólo se utilizan polígonos y colores, sin texturas. Aquí está el daño:

 Java.lang.RuntimeException: createContext failed: EGL_BAD_ALLOC at android.opengl.GLSurfaceView$EglHelper .throwEglException(GLSurfaceView.java:1079) at android.opengl.GLSurfaceView$EglHelper .throwEglException(GLSurfaceView.java:1071) at android.opengl.GLSurfaceView$EglHelper .start(GLSurfaceView.java:927) at android.opengl.GLSurfaceView$GLThread .guardedRun(GLSurfaceView.java:1248) at android.opengl.GLSurfaceView$GLThread .run(GLSurfaceView.java:1118) 

De hacer algunas investigaciones en Internet, este es un error reconocido . Entonces, ¿cómo puedo hacer el control de daños? +200 para un empujón en la dirección correcta.

EDIT: SOLUCIONE EL PROBLEMA (HE OLVIDADO LLAMAR ONPAUSE () / ONRESTART () EN LAS VISTAS). PRIMERA PERSONA PARA PONER UNA RESPUESTA SOBRE CUALQUIER COSA QUE OBTIENE +200.

  • Android - llamando al hilo de ui del hilo de trabajo
  • Android SDK Manager no carga la última plataforma SDK de Android (API 17)
  • Método FloatMath.sqrt () no encontrado
  • ¿Cuál es la diferencia entre la clase URI y Uri?
  • No se puede establecer la actividad de los padres para nuevas actividades en Android Studio. Error: padre jerárquico ya debe existir
  • Obtener la etiqueta de referencias de Google Analytics para Android
  • ¿Cómo adjunto la fuente de la Biblioteca de soporte de Android en Eclipse?
  • ¿Cuál es el propósito de IntentSender?
  • One Solution collect form web for “Android – GLSurfaceView EGL_BAD_ALLOC”

    Molestamente no puedo publicar un comentario todavía, pero creo que quieres decir onResume, no onRestart. Su Actividad se puede pausar sin detenerse, lo que causaría onPause, pero no enRestart.

    Esta imagen (de la actividad docs ) muestra este ciclo de vida de la actividad muy bien:

    Http://developer.android.com/images/activity_lifecycle.png

    En resumen, recuerde pasar onPause y onResume a su super y al GLSurfaceView.

    De http://android-developers.blogspot.com/2009/04/introducing-glsurfaceview.html :

     public class ClearActivity extends Activity { ... snip ... @Override protected void onPause() { super.onPause(); mGLView.onPause(); } @Override protected void onResume() { super.onResume(); mGLView.onResume(); } private GLSurfaceView mGLView; } 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.