andengine引擎下detachChild的問題

12-30 12:19:56.210  18210-18256/com.example.SpriteTest E/AndroidRuntime﹕ FATAL EXCEPTION: UpdateThread
    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();

發佈了38 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章