Stackoverflow при попытке запустить текстовый пример в AndEngineExampleLauncher

#android #andengine

#Android #andengine

Вопрос:

Привет, ребята из игрового движка,

Это вопрос к тем, кто работал с AndEngine для Android.

У меня проблема с получением текстового примера работы AndEngineExampleLauncher!

Он выдает следующее исключение:

 09-30 10:11:19.940: ERROR/AndroidRuntime(466): FATAL EXCEPTION: main
09-30 10:11:19.940: ERROR/AndroidRuntime(466): java.lang.StackOverflowError
09-30 10:11:19.940: ERROR/AndroidRuntime(466):     at org.anddev.andengine.ui.activity.BaseGameActivity.getFontManager(BaseGameActivity.java:137)
09-30 10:11:19.940: ERROR/AndroidRuntime(466):     at org.anddev.andengine.ui.activity.BaseGameActivity.getFontManager(BaseGameActivity.java:137)
09-30 10:11:19.940: ERROR/AndroidRuntime(466):     at org.anddev.andengine.ui.activity.BaseGameActivity.getFontManager(BaseGameActivity.java:137)
  

Я погуглил эту ошибку, и кажется, что у некоторых других парней такая же проблема, но я нигде не смог найти решение!

Кто-нибудь смог заставить этот пример работать, не получив эту ошибку StackOverflowError 80-х и 90-х годов !.

Действительно ценю вашу помощь.

Спасибо, Мохамед А.Карим

Комментарии:

1. Добавьте код, который вы пытаетесь…

2. @LalitPoptani Я просто пытаюсь запустить AndEngineExample, с моей стороны нет кода. Пример исходного кода: code.google.com/p/andengineexamples

Ответ №1:

Это очень странно, но я потратил время на отладку AndEngine BaseGameActivity.java класс из AndEngine src, и я нашел причину проблемы:

Вот метод, поставляемый с getFontManger():

     public FontManager getFontManager() {
    return this.getFontManager();
}
  

Это типичная причина переполнения стека… Самый классический.

Я изменил этот метод на:

     public FontManager getFontManager() {
    return this.mEngine.getFontManager();
}
  

И текстовый пример AndEngine теперь работает как шарм.

Итак, вот шаги, которые я сделал, чтобы заставить текстовый пример AndEngine работать: 1- Перейдите к проекту AndEngine (исходный код, который вы импортируете в свою игру) 2- Перейдите в класс org.anddev.andengine.ui.activity.BaseGameActivity.java 3- Перейдите к методу: getFontManager() 4- Измените возвращаемое значение с: return this.getFontManager(); На: return this .mEngine.getFontManager();

Я надеюсь, что это может помочь всем, у кого такая же проблема

Действительно ценю огромные усилия @Nicolas Grammich за создание такого невероятного игрового движка.

Спасибо, Мохамед.

Комментарии:

1. Мне интересно, почему они не добавляют это исправление в исходный код на github?

2. Не стесняйтесь подавать запрос на извлечение =)