AndEngine: Fatal exception in GLThread: IndexOutOfBoundsException

I write a special dialog box for my AndEngine BaseGameActivity, and sometimes when the dialog should disappear, the application crashes with this error:

08-15 09:49:16.193: ERROR/AndroidRuntime(1572): FATAL EXCEPTION: GLThread java.lang.IndexOutOfBoundsException: Invalid index 3, size is 3 at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251) at java.util.ArrayList.get(ArrayList.java:304) at org.anddev.andengine.entity.Entity.onManagedDrawChildren(Entity.java:1008) at org.anddev.andengine.entity.Entity.onDrawChildren(Entity.java:1000) at org.anddev.andengine.entity.Entity.onManagedDraw(Entity.java:993) at org.anddev.andengine.entity.scene.Scene.onManagedDraw(Scene.java:233) at org.anddev.andengine.entity.Entity.onDraw(Entity.java:875) at org.anddev.andengine.engine.Engine.onDrawScene(Engine.java:517) at org.anddev.andengine.engine.Engine.onDrawFrame(Engine.java:509) at org.anddev.andengine.opengl.view.RenderSurfaceView$Renderer.onDrawFrame(RenderSurfaceView.java:154) at org.anddev.andengine.opengl.view.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:617) at org.anddev.andengine.opengl.view.GLSurfaceView$GLThread.run(GLSurfaceView.java:549) 
0
source share
1 answer

I found that this can happen when you try to disconnect a child in the background thread, so you need to use this code every time you want to separate something:

 activity.runOnUpdateThread(new Runnable() { @Override public void run() { scene.detachChild(child); } }); 
+9
source

Source: https://habr.com/ru/post/1496159/


All Articles