5
Tôi đã lỗi mà tôi không có ý tưởng về sau:AndEngine GLES2- IndexOutOfBoundsException bên Entity.java line: 1402
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)
Tôi tin rằng đó là một cái gì đó liên quan với onManagedUpdate() bên trong một MoveModifier tôi sử dụng bên trong mã của tôi .
Nếu tôi không thể tách nó trênModifierFinished thì tôi có thể tách nó ở đâu khác? Tôi thực sự đang thay đổi scene trênModifierFinished. Bất kỳ ý tưởng? – Nafis
Bạn có thể tách nó trong onModifierFinished miễn là bạn bọc nó trong "runOnUpdateThread" như trong ví dụ của tôi. Điều này hoạt động tốt bởi vì nó không chạy lệnh tách trong luồng hiện tại - thay vào đó nó cho biết "chuỗi cập nhật" để thực hiện nó ngay khi có thể. – simonp
Lý do này sửa chữa mọi thứ là nó cho phép các chủ đề cập nhật để đảm bảo rằng những thay đổi cảnh không xảy ra khi nó đang ở giữa lặp qua cảnh. Nếu bạn thực hiện tách ra bên ngoài luồng cập nhật, thì bạn có nguy cơ làm việc đó trong khi luồng cập nhật lặp qua một mảng chứa thực thể đó và kích hoạt một ArrayIndexOutOfBoundsException - chính xác những gì đã xảy ra với bạn. – simonp