gpt4 book ai didi

java.lang.IndexOutOfBoundsException : Invalid index 13, 大小为 13

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:54:00 25 4
gpt4 key购买 nike

我收到一些奇怪的错误,导致我的 Android 应用程序崩溃。它是一个测验应用程序。因此,当用户正确回答 2/3 的问题时,然后单击下一步按钮,它就会崩溃。并显示索引 13 错误。但我无法弄清楚在哪里修复/寻找。这是我的代码 fragment 。

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;
}
}
}
}

日志猫的详细信息是这样的

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)

更新

这是我的完整类(class)文件 http://jquery404.com/file/GameScene.txt

最佳答案

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

实际错误是从您正在使用的库中的某些代码中抛出的

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

您很可能在单独的线程中更改列表,而库也在与列表交互。


来自gcode project ;

    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 在他的回答中解释的那样。

java.lang.IndexOutOfBoundsException: Invalid index 13, size is 13

我能看到您的代码中唯一会导致此问题的项目是您在许多地方使用过的语句 questionText.detachSelf();。您应该改用;

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

关于java.lang.IndexOutOfBoundsException : Invalid index 13, 大小为 13,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18148097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com