5
Mam następujące błędy, które nie mam pojęcia o:AndEngine GLES2- IndexOutOfBoundsException wewnątrz 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)
wierzę, że to coś związane z onManagedUpdate() wewnątrz MoveModifier użyłem w moim kodu .
Jeśli nie mogę odłączyć go naModifierFinished, to gdzie jeszcze mogę go odłączyć? Zmieniam scenę naModifierFinished. Jakieś pomysły? – Nafis
Możesz odłączyć go w onModifierFinished tak długo, jak zawinąć go w "runOnUpdateThread", jak w moim przykładzie. Działa to dobrze, ponieważ nie uruchamia odłączenia w bieżącym wątku - zamiast tego mówi "aktualizuj wątek", aby wykonać go tak szybko, jak to możliwe. – simonp
Powodem, dla którego to rozwiązuje problem, jest to, że pozwala on wątkowi aktualizacji, aby upewnić się, że zmiany sceny nie następują, gdy znajduje się w trakcie iteracji nad sceną. Jeśli wykonasz odłączenie poza wątkiem aktualizacji, ryzykujesz, że to zrobisz, podczas gdy wątek aktualizacji przeplata tablicę zawierającą ten obiekt i wyzwala wyjątek ArrayIndexOutOfBoundsException - dokładnie to, co się z tobą stało. – simonp