我有以下错误,我不知道:
06-08 19:59:54.367: E/AndroidRuntime(11629): FATAL EXCEPTION: UpdateThread
06-08 19:59:54.367: E/AndroidRuntime(11629): java.lang.IndexOutOfBoundsException: Invalid index 11, size is 0
06-08 19:59:54.367: E/AndroidRuntime(11629): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
06-08 19:59:54.367: E/AndroidRuntime(11629): at java.util.ArrayList.get(ArrayList.java:304)
06-08 19:59:54.367: E/AndroidRuntime(11629): at org.andengine.entity.Entity.onManagedUpdate(Entity.java:1402)
06-08 19:59:54.367: E/AndroidRuntime(11629): at org.andengine.entity.scene.Scene.onManagedUpdate(Scene.java:284)
06-08 19:59:54.367: E/AndroidRuntime(11629): at org.andengine.entity.Entity.onUpdate(Entity.java:1167)
06-08 19:59:54.367: E/AndroidRuntime(11629): at org.andengine.engine.Engine.onUpdateScene(Engine.java:591)
06-08 19:59:54.367: E/AndroidRuntime(11629): at org.andengine.engine.Engine.onUpdate(Engine.java:586)
06-08 19:59:54.367: E/AndroidRuntime(11629): at org.andengine.engine.Engine.onTickUpdate(Engine.java:548)
06-08 19:59:54.367: E/AndroidRuntime(11629): at org.andengine.engine.Engine$UpdateThread.run(Engine.java:820)
我相信它与我在代码中使用的MoveModifier中的onManagedUpdate()有关。
答案 0 :(得分:7)
这几乎总是由于在错误的线程中分离实体。检查您可能在响应用户交互或修改器回调中分离实体的任何位置,并将其包装在runOnUpdateThread
中。 E.g:
@Override
public void onModifierFinished(IModifier<IEntity> pModifier, IEntity pItem) {
engine.runOnUpdateThread(new Runnable() {
@Override
public void run() {
widget.detachSelf();
}
});
}