java.lang.IndexOutOfBoundsException: Invalid index 37, size is 37
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
at java.util.ArrayList.get(ArrayList.java:308)
at org.anddev.andengine.entity.Entity.onManagedUpdate(Entity.java:854)
at org.anddev.andengine.entity.Entity.onUpdate(Entity.java:726)
at org.anddev.andengine.entity.Entity.onManagedUpdate(Entity.java:854)
at org.anddev.andengine.entity.scene.Scene.onManagedUpdate(Scene.java:288)
at org.anddev.andengine.entity.Entity.onUpdate(Entity.java:726)
at org.anddev.andengine.engine.Engine.onUpdateScene(Engine.java:478)
at org.anddev.andengine.engine.Engine.onUpdate(Engine.java:473)
at org.anddev.andengine.engine.Engine.onTickUpdate(Engine.java:449)
at org.anddev.andengine.engine.Engine$UpdateThread.run(Engine.java:673)
原因在於沒有對引擎加鎖的情況下進行了移除實體的操作。
解決辦法:在將實體移除某場景之前先對引擎枷鎖,操作完成後解鎖
pScene.detachChild(this.mFaceToRemove);
this.mFaceToRemove.dispose();
this.mFaceToRemove = null;
engineLock.unlock();