Android 'Kann Fenster nicht hinzufügen - Token-Null ist nicht für eine Anwendung' Ausnahme
Bekomme ich folgende Android-Ausnahme, wenn ich versuche, um ein Dialogfeld zu öffnen. Kann mir bitte jemand helfen zu verstehen, was ist passiert und wie kann ich dieses problem beheben?
android.view.WindowManager$BadTokenException:
Unable to add window -- token null is not for an application
at android.view.ViewRoot.setView(ViewRoot.java:509)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
at android.app.Dialog.show(Dialog.java:241)
InformationsquelleAutor der Frage michael | 2011-10-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich vermute - sind Sie versuchen, zu erstellen Dialog mit einer Anwendung Kontext? So etwas wie dieses:
Dies ist falsch. Sie verwenden müssen, um eine Aktivität Kontext.
Sie haben, um zu versuchen, wie:
InformationsquelleAutor der Antwort Peter Knego
Können Sie weiterhin verwenden
getApplicationContext()
aber bevor Sie benutzen, sollten Sie dieses flag:dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT)
und der Fehler wird nicht angezeigt.Und vergessen Sie nicht, fügen Sie die Berechtigung:
InformationsquelleAutor der Antwort codezjx
In meinem Fall war ich versucht, um meine Dialogfeld wie dieses:
So musste ich für:
Und es funktioniert gut für mich 😉
InformationsquelleAutor der Antwort postNuKe
Versuchen
getParent()
auf das argument Platzcontext
wienew AlertDialog.Builder(getParent());
Hoffe es funktioniert, es funktionierte für mich.InformationsquelleAutor der Antwort Priyank Joshi
Ich vermute, Sie versuchen zu erstellen-Dialog verwenden.
wenn Sie die Anzeige von dialog-non activity Klasse, dann müssen Sie pass-Aktivität als parameter.
Nun wird es Super funktionieren.
Wenn Sie irgendwelche Schwierigkeiten, dann lassen Sie es mich wissen.
InformationsquelleAutor der Antwort Harshid
Habe ich versucht mit dieser im Kontext Bereich:
und es funktioniert gut für mich. Dies war eine Klasse, die sich von "Fragment":
InformationsquelleAutor der Antwort Matias
Habe ich diese Ausnahme, wenn ich versuchte, Sie zu öffnen Fortschritts-Dialog unter Cordova-Plugin durch die Verwendung von unter zwei Fällen,
new ProgressDialog(this.cordova.getActivity().getParent());
new ProgressDialog(this.cordova.getActivity().getApplicationContext());
Später geändert, wie diese,
new ProgressDialog(this.cordova.getActivity());
Seine arbeiten gut für mich.
InformationsquelleAutor der Antwort soorya
Verwenden Sie diese und Kontext nicht für mich gearbeitet..aber MyActivityName.dieser arbeitete. Hoffe, dies hilft jemand, die es brauchen.
InformationsquelleAutor der Antwort Makvin
Bekam ich die gleiche exception. was ich tun, um dies zu beheben, übergeben Sie die Instanz des dialogs
als parameter in die Funktion und verwenden Sie es anstelle von pass-Kontext nur dann mittels getContext(). diese Lösung mein problem zu lösen, hoffe, es kann helfen,
InformationsquelleAutor der Antwort Pheak