Некоторые пользователи слишком часто получают этот крах в моем приложении, разработанном в andengine. Я не снимаю/не прикрепляю какие-либо объекты, но все же получаю эту ошибку. Я использую видимость объекта и unregistertoucharea, хотя я не ввел runonupdate. Может ли это вызвать эту проблему. Если нет, кто-нибудь, пожалуйста, скажите мне, что может?java.lang.IndexOutOfBoundsException: неверный индекс 2, размер 2
Это сообщение об аварии, которое я получаю от Google Play.
java.lang.IndexOutOfBoundsException: Invalid index 2, size is 2
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
at java.util.ArrayList.get(ArrayList.java:308)
at org.andengine.c.a.d(Unknown Source)
at org.andengine.c.c.e.d(Unknown Source)
at org.andengine.c.a.a(Unknown Source)
at org.andengine.b.a.b(Unknown Source)
at org.andengine.b.a.a(Unknown Source)
at org.andengine.opengl.e.g.onDrawFrame(Unknown Source)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1523)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
Иногда игра разваливается на GameOver, а иногда происходит сбой при перезапуске игры
Когда игра закончилась, я звоню следующую функцию
public void GameOver(){
yourScoreText.setText(""+score);
restart_button.setVisible(true);
leaderboard_button.setVisible(true);
share_button.setVisible(true);
gameOverText.setVisible(true);
gameOverOverlay.setVisible(true);
yourScoreText.setVisible(true);
highScoreText.setVisible(true);
this.registerTouchArea(restart_button);
this.registerTouchArea(leaderboard_button);
this.registerTouchArea(share_button);
}
Когда рестарт нажимается I я вызываю следующую функцию.
public void RestartGame(){
restart_button.setVisible(false);
leaderboard_button.setVisible(false);
share_button.setVisible(false);
gameOverText.setVisible(false);
gameOverOverlay.setVisible(false);
yourScoreText.setVisible(false);
highScoreText.setVisible(false);
this.unregisterTouchArea(restart_button);
this.unregisterTouchArea(leaderboard_button);
this.unregisterTouchArea(share_button);
score = 0;
scoreText.setText("Score: "+score);
Log.d("game start","game has been started");
StartScreen();
}
public void StartScreen(){
leaderboard_home_button.setVisible(true);
rate_button.setVisible(true);
if(activity.getNoAds()==0){
no_ads_button.setVisible(true);
this.registerTouchArea(no_ads_button);
}
if(isMute){
sound_off_button.setVisible(true);
this.registerTouchArea(sound_off_button);
} else {
sound_on_button.setVisible(true);
this.registerTouchArea(sound_on_button);
}
this.registerTouchArea(leaderboard_home_button);
this.registerTouchArea(rate_button);
}
'отправить свой код' – Gattsu
какая строка в вашем коде дает вам это исключение? ты можешь сказать? – ranifisch
Я почти уверен, что это метод .setText, не так ли? – ranifisch