Java.lang.IndexOutOfBoundsException: El índice no válido 13, el tamaño es 13
Estoy recibiendo un error extraño que estrellar mi aplicación Android. Es una aplicación de prueba. Así que cuando la respuesta del usuario 2/3 pregunta correctamente, haga clic en el siguiente botón que se bloquea. Y mostrar el índice 13 de error. Pero no pude averiguar dónde arreglar / buscar. Aquí está mi fragmento de código.
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; } } } }
Los detalles del gato de registro son como esto
- No se puede crear un usuario con la última versión de Firebase. Consigo un W / DynamiteModule y W / GooglePlayServicesUtil
- Android: implementa un temporizador de intervalo de 1 segundo antes de llamar a una función
- Y no importar R.java
- La API de Google Docs devuelve un servicio 503 no disponible al cargar un archivo. ¿Ha cambiado algo?
- No se puede comunicar Google Datastore con la aplicación Android en Android Studio
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)
ACTUALIZAR
Aquí está mi archivo de clase completo http://jquery404.com/file/GameScene.txt
- Uso de OAuth con Scribe en Android
- cómo detectar este gesto de movimiento específico a través de sensores?
- Cambiar el color del tema en Runtime en Android
- Prueba del código de Android con JUnit y el JDK
- Phonegap evento deviceready
- ¿Cómo utilizo el cuadro de diálogo Builder de alerta para mostrar un mensaje?
- Cómo agregar fuente de 'Android Private Libraries' a ADT eclipse?
- Retrofit - Cliente Okhttp Cómo almacenar en caché la respuesta
En los índices de programación a menudo comienzan en 0, por lo que si tiene 9 elementos, el índice más alto sería 8.
El error real se está lanzando desde algún código dentro de la biblioteca que está utilizando
org.anddev.andengine.entity.Entity.onManagedDrawChildren(Entity.java:1008)
Es probable que esté cambiando la lista en un hilo independiente, mientras que la biblioteca también está interactuando con la lista.
Del proyecto gcode ;
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); } }
Como esto se ejecuta en un subproceso separado, es probable que esté quitando un objeto de los niños ArrayList
mientras el bucle está iterando. Para arreglar esto, debe llamar a sus cambios a los niños ArrayList
como jmr499485 explica en su respuesta.
Java.lang.IndexOutOfBoundsException: El índice no válido 13, el tamaño es 13
El único elemento en su código puedo ver que sería la causa de esta es la declaración questionText.detachSelf();
Que usted ha utilizado en muchos lugares. En su lugar, debe utilizar;
runOnUpdateThread(new Runnable() { @Override public void run() { questionText.detachSelf(); } });
Esto suele suceder cuando se elimina algo de la pantalla y no lo hace en el updateThread. Asegúrese de que en cualquier lugar que está eliminando elementos que lo llaman así
runOnUpdateThread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub //remove/detach your stuff in here } });
Vea esta pregunta similar – ¿Cómo reparar este error? "Java.lang.IndexOutOfBoundsException"