java.lang.IndexOutOfBoundsException:无效指数13,大小为13 [英] java.lang.IndexOutOfBoundsException: Invalid index 13, size is 13

查看:399
本文介绍了java.lang.IndexOutOfBoundsException:无效指数13,大小为13的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

即时得到一些奇怪的错误,撞毁我的Andr​​oid应用程序。它是一种测验的应用程序。因此,当用户回答2/3的问题正确,然后单击下一步按钮,这一点,崩溃。并显示指数13错误。但我无法揣摩出固定/外观。这里是我的code段。

Im getting some weird error which crashing my android app. Its a quiz app. So when user answer 2/3 question correctly then click the next button this it crash. and show index 13 error. But i couldn't figure out where to fix/ look for. here is my code snippet.

public Vector<Sprite> defaultTile;

private void GameResults()
{
    if(result.equals("right"))      
    {           
        GameOver();
        Log.e("Gaa", "Right Here ->");
    }
}

private void GameOver() {
{
    for (int i = 0; i < defaultTile.size(); i++) {
        defaultTile.get(i).setVisible(false);               
    }
    for (int i = 0; i < defaultTile.size(); i++) 
    {
        unregisterTouchArea(defaultTile.get(i));                
    }
    questionText.detachSelf();   
}   

@Override
public boolean onAreaTouched(TouchEvent event, ITouchArea area, float posX,
        float posY) {

    if(event.isActionUp())
    {
        if(area instanceof Sprite)
        {
            Sprite sprite = (Sprite)area;
            int userData = (Integer) sprite.getUserData();
            switch(userData) 
            {
            case BTN_NEXT:                              
                if(gameState.equals("alpha") && tickBg.isVisible())
                {                       
                    countdown.cancel();                         
                    GameResults();  
                }           

                break;
            }
        }
    }
}   

登录猫的细节是这样的

Log cat details is like this

08-09 13:30:50.246: W/dalvikvm(919): threadid=12: thread exiting with uncaught exception (group=0x409c01f8)
08-09 13:30:50.276: E/AndroidRuntime(919): FATAL EXCEPTION: GLThread
08-09 13:30:50.276: E/AndroidRuntime(919): java.lang.IndexOutOfBoundsException: Invalid index 9, size is 9
08-09 13:30:50.276: E/AndroidRuntime(919):  at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
08-09 13:30:50.276: E/AndroidRuntime(919):  at java.util.ArrayList.get(ArrayList.java:304)
08-09 13:30:50.276: E/AndroidRuntime(919):  at org.anddev.andengine.entity.Entity.onManagedDrawChildren(Entity.java:1008)
08-09 13:30:50.276: E/AndroidRuntime(919):  at org.anddev.andengine.entity.Entity.onDrawChildren(Entity.java:1000)
08-09 13:30:50.276: E/AndroidRuntime(919):  at org.anddev.andengine.entity.Entity.onManagedDraw(Entity.java:993)
08-09 13:30:50.276: E/AndroidRuntime(919):  at org.anddev.andengine.entity.shape.Shape.onManagedDraw(Shape.java:120)
08-09 13:30:50.276: E/AndroidRuntime(919):  at org.anddev.andengine.entity.Entity.onDraw(Entity.java:875)
08-09 13:30:50.276: E/AndroidRuntime(919):  at org.anddev.andengine.entity.Entity.onManagedDrawChildren(Entity.java:1008)
08-09 13:30:50.276: E/AndroidRuntime(919):  at org.anddev.andengine.entity.Entity.onDrawChildren(Entity.java:1000)
08-09 13:30:50.276: E/AndroidRuntime(919):  at org.anddev.andengine.entity.Entity.onManagedDraw(Entity.java:993)
08-09 13:30:50.276: E/AndroidRuntime(919):  at org.anddev.andengine.entity.scene.Scene.onManagedDraw(Scene.java:233)
08-09 13:30:50.276: E/AndroidRuntime(919):  at org.anddev.andengine.entity.Entity.onDraw(Entity.java:875)
08-09 13:30:50.276: E/AndroidRuntime(919):  at org.anddev.andengine.engine.Engine.onDrawScene(Engine.java:517)
08-09 13:30:50.276: E/AndroidRuntime(919):  at org.anddev.andengine.engine.Engine.onDrawFrame(Engine.java:509)
08-09 13:30:50.276: E/AndroidRuntime(919):  at org.anddev.andengine.opengl.view.RenderSurfaceView$Renderer.onDrawFrame(RenderSurfaceView.java:154)
08-09 13:30:50.276: E/AndroidRuntime(919):  at org.anddev.andengine.opengl.view.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:617)
08-09 13:30:50.276: E/AndroidRuntime(919):  at org.anddev.andengine.opengl.view.GLSurfaceView$GLThread.run(GLSurfaceView.java:549)

更新

下面是我的完整的类文件 http://jquery404.com/file/GameScene.txt

Here is my full class file http://jquery404.com/file/GameScene.txt

推荐答案

在编程索引通常从0开始,所以如果你有9个项目,最高指数为8。

In programming indexes often start at 0, so if you have 9 items, the highest index would be 8.

实际的错误正在从一些code抛出您使用的库中的

The actual error is being thrown from some code within the library you are using

org.anddev.andengine.entity.Entity.onManagedDrawChildren(Entity.java:1008)

有可能要更改列表中一个单独的,而库中的线程也与清单进行交互。

It is likely that you are changing the list in a separate thread whilst the library is also interacting with the list.

在<一个href="https://$c$c.google.com/p/andengine/source/browse/src/org/anddev/andengine/entity/Entity.java?r=9d1c7c0a5e53fce791b8411ac541fd74efc55f93">g$c$c项目;

    public void onManagedDrawChildren(final Camera pCamera) {
            final ArrayList<IEntity> children = this.mChildren;
            final int childCount = children.size();
            for(int i = 0; i < childCount; i++) {
                    children.get(i).onDraw(pCamera);
            }
    }

由于这是在一个单独的线程中运行,很可能要删除从孩子的对象的ArrayList 而循环迭代。为了解决这个问题,你应该打电话给你改变孩子的ArrayList 像jmr499485解释了他的答案。

As this is running in a separate thread, it is likely that you are removing an object from the children ArrayList while the loop is iterating. To fix this you should call your changes to the children ArrayList like jmr499485 explains in his answer.

<一个href="http://stackoverflow.com/questions/18148097/java-lang-indexoutofboundsexception-invalid-index-13-size-is-13/18148283#18148097">java.lang.IndexOutOfBoundsException:无效的指数13,大小为13

在code中的唯一项目,我可以看到,将导致这是语句 questionText.detachSelf(); 您已经使用在许多地方。你应该使用;

The only item in your code I can see that would be causing this is the statement questionText.detachSelf(); which you have used in many places. You should instead use;

runOnUpdateThread(new Runnable() {
@Override
public void run() {
    questionText.detachSelf();
}
});

这篇关于java.lang.IndexOutOfBoundsException:无效指数13,大小为13的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆