Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0 in my program android

Tags:

java

android

I start to developpe in android, and I try to modify Snake code for including a call to browser for desplaying web page, when i execute my application it shows the page in the brwser, but the problem when i come back to snake application it shows message that the application has stoped unexpectedly, and the logCat show anthe exception below

02-19 01:06:50.920: W/dalvikvm(3394): threadid=1: thread exiting with uncaught exception (group=0x4015a760)
02-19 01:06:50.930: E/AndroidRuntime(3394): FATAL EXCEPTION: main
02-19 01:06:50.930: E/AndroidRuntime(3394): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
02-19 01:06:50.930: E/AndroidRuntime(3394):     at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at java.util.ArrayList.get(ArrayList.java:308)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at com.example.android.snake.SnakeView.updateSnake(SnakeView.java:448)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at com.example.android.snake.SnakeView.update(SnakeView.java:403)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at com.example.android.snake.SnakeView.setMode(SnakeView.java:335)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at com.example.android.snake.SnakeView.onKeyDown(SnakeView.java:278)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at android.view.KeyEvent.dispatch(KeyEvent.java:2387)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at android.view.View.dispatchKeyEvent(View.java:4569)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1113)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1113)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1113)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1113)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:1692)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1260)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at android.app.Activity.dispatchKeyEvent(Activity.java:2231)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1648)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at android.view.ViewRoot.deliverKeyEventPostIme(ViewRoot.java:2730)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2703)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1958)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at android.os.Looper.loop(Looper.java:126)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at android.app.ActivityThread.main(ActivityThread.java:3997)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at java.lang.reflect.Method.invokeNative(Native Method)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at java.lang.reflect.Method.invoke(Method.java:491)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
02-19 01:06:50.930: E/AndroidRuntime(3394):     at dalvik.system.NativeStart.main(Native Method)
02-19 01:08:07.450: D/A    
like image 606
user23 Avatar asked Feb 19 '12 14:02

user23


1 Answers

I think it's quite clear, here

at com.example.android.snake.SnakeView.updateSnake(SnakeView.java:448)

you are accessing an ArrayList that has been instantiated as new ArrayList(0), quite straightforward if you at least read the error.

ArrayList objects are meant to automatically resize, but if you don't place anything in a zero-sized array list then you get this error.

like image 113
Jack Avatar answered Sep 18 '22 21:09

Jack