ScoreNinja Ursachen java.lang.RuntimeException: Can ' T create handler inside thread, der nicht genannt Looper.prepare()
Ich versuche, fügen Sie ScoreNinja, die globalen high-score-system, auf meinem Android-Spiel, und es funktioniert, wenn ich laden Sie es auf meinem Handy, aber wenn ich Los in die wilden, ich hab crash-Berichte, die sagen:
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
Hier ist ein Teil der call-stack:
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)
Dachte ich, dass der Haupt-thread hatte prepare() automatisch aufgerufen, und wenn nicht, warum würde es funktionieren, für mich aber nicht jemand anderes?
InformationsquelleAutor cstack | 2010-04-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bin ich mir noch nicht sicher, was Los war, aber wer hat das gleiche problem, es funktioniert gut, wenn Sie brechen Ihr Spiel in ein Menü Aktivität und einer Spiel-Aktivität. Das Spiel haben-Aktivität zurück, ein Ergebnis auf das Menü Aktivität auf ein Spiel vorbei ist, dann rufen Sie alle den ScoreNinja Zeug aus dem Menü Aktivität.
InformationsquelleAutor cstack
Stell ich Sie beim erstellen der handler außerhalb des Haupt-Threads. Erstellen Sie die handler in der
onCreate
Ihrer Aktivität oder etwas ähnliches, etwas, das werden auf jeden Fall in den main-thread, und dann können Sie anrufenhandler.post(runnable)
in Ihrem anderen thread.InformationsquelleAutor synic