12-03 00:17:08.091: ERROR/AndroidRuntime(289): java.lang.IndexOutOfBoundsException: Invalid index 3, size is 3
12-03 00:17:08.091: ERROR/AndroidRuntime(289): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257)
12-03 00:17:08.091: ERROR/AndroidRuntime(289): at java.util.ArrayList.set(ArrayList.java:481)
12-03 00:17:08.091: ERROR/AndroidRuntime(289): at com.sike.snake.snake$1.handleMessage(snake.java:87)
12-03 00:17:08.091: ERROR/AndroidRuntime(289): at com.sike.snake.snake$mytimer.run(snake.java:57)
12-03 00:17:08.091: ERROR/AndroidRuntime(289): at java.util.Timer$TimerImpl.run(Timer.java:289)
这个是错误信息
12-03 00:17:08.091: ERROR/AndroidRuntime(289): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257)
12-03 00:17:08.091: ERROR/AndroidRuntime(289): at java.util.ArrayList.set(ArrayList.java:481)
12-03 00:17:08.091: ERROR/AndroidRuntime(289): at com.sike.snake.snake$1.handleMessage(snake.java:87)
12-03 00:17:08.091: ERROR/AndroidRuntime(289): at com.sike.snake.snake$mytimer.run(snake.java:57)
12-03 00:17:08.091: ERROR/AndroidRuntime(289): at java.util.Timer$TimerImpl.run(Timer.java:289)
这个是错误信息
positionX.set(i, positionX.get(i - 1));
positionY.set(i, positionY.get(i - 1));
这两句有问题,当吃到豆子时,i = 3;
positionX.set(3, positionX.get(2));
此时你的positionX中只有三个数,最大索引为2,用3就溢出了,正如错误信息一样