Stackoverflow при попытке запустить пример текста в AndEngineExampleLauncher - PullRequest
2 голосов
/ 30 сентября 2011

Эй, ребята из Game Engine,

Это вопрос для тех, кто работал с 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 Ответ

4 голосов
/ 01 октября 2011

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

Вот поставка с getFontManger ()Метод:

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

Это типичная причина StackOverFlow ... Очень классическая.

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

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

Ипример AndEngine Text теперь работает как шарм.

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

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

Действительно ценю большие усилия @ Николаса Грамлича1018 * за создание такого невероятного игрового движка.

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

...