2010-04-08 3 views
2

Я пытаюсь добавить ScoreNinja, глобальную систему оценки баллов, в свою игру для Android, и она отлично работает когда я загрузить его на свой телефон, но когда я выпускаю его в дикой природе, я получил отчеты о сбоях, говоря:ScoreNinja вызывает java.lang.RuntimeException: не удается создать обработчик внутри потока, который не вызвал Looper.prepare()

java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 

Вот часть стека вызовов:

android.os.Handler.<init>(Handler.java:121) 
android.app.Dialog.<init>(Dialog.java:99) 
android.app.AlertDialog.<init>(AlertDialog.java:65) 
android.app.AlertDialog.<init>(AlertDialog.java:61) 
android.app.AlertDialog$Builder.create(AlertDialog.java:797) 
android.app.AlertDialog$Builder.show(AlertDialog.java:812) 
com.scoreninja.adapter.ScoreNinjaAdapter.show(ScoreNinjaAdapter.java:136) 
com.scoreninja.adapter.ScoreNinjaAdapter.show(ScoreNinjaAdapter.java:99) 

Я думал, что основной поток автоматически() вызывал(), а если нет, то зачем это работает для меня, но не для кого-либо еще?

ответ

1

Я все еще не уверен, что случилось, но для тех, у кого есть такая же проблема, он отлично работает, если вы разбиваете игру в меню «Активность» и «Активность игры». Чтобы игровая активность вернула счет в действие меню в игре, затем вызовите весь материал ScoreNinja из действия меню.

0

Я предполагаю, что вы создаете обработчик вне основного потока. Создайте обработчик в onCreate вашей деятельности или что-то подобное, что определенно будет в основном потоке, а затем вы можете позвонить handler.post(runnable) внутри другой темы.

Смежные вопросы

 Смежные вопросы