Android "Impossible d'ajouter la fenêtre du jeton de la valeur null n'est pas pour une application' exception
J'ai le Android exception lorsque j'essaie d'ouvrir une boîte de dialogue. Quelqu'un peut-il m'aider à comprendre ce qui se passe et comment puis-je résoudre ce problème?
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)
- Comment sommes-nous censés savoir sans affichage du code?
- Double Possible de Android 1.6: "android.vue.WindowManager$BadTokenException: Impossible d'ajouter de la fenêtre -- jeton null n'est pas pour une application"
- Veuillez consulter cette réponse , la principale chose à afficher le lien de cette réponse est il est agréable conversation dans les commentaires sur cette réponse, qui décrivent pourquoi ce problème à venir et quelle est la meilleure façon de traiter avec elle http://stackoverflow.com/a/7229248/501483
- Si vous utilisez le Service, lire stackoverflow.com/questions/23516689/....
Vous devez vous connecter pour publier un commentaire.
Je devine - êtes-vous essayer de créer une boîte de Dialogue avec un contexte d'application? Quelque chose comme ceci:
Ce qui est faux. Vous devez utiliser un contexte d'Activité.
Vous devez essayer comme:
YourActivity.this
getActivity()
@SagarDevangaVous pouvez continuer à utiliser
getApplicationContext()
, mais avant de l'utiliser, vous devez ajouter ce drapeau:dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT)
, et l'erreur ne s'affichera pas.Et n'oubliez pas d'ajouter la permission:
Dans mon cas, j'ai essayé de créer ma boîte de dialogue comme ceci:
Donc j'ai dû changer pour:
Et il fonctionne très bien pour moi 😉
MyActivity.class
au lieu dethis
parce quethis
fait référence à un autre objet.this
assurez-vous que votreDialog
hérite de votre thème.Essayer
getParent()
à l'argument de la place decontext
commenew AlertDialog.Builder(getParent());
Espère que cela va fonctionner, il a travaillé pour moi.this.parent.getActivity().getApplicationContext()
maisthis.parent.getActivity()
a fait le tour.Je devine - êtes-vous essayer de créer une boîte de Dialogue à l'aide.
si Vous affichant la boîte de dialogue de non activité de la classe, alors vous devez passer l'activité en tant que paramètre.
Maintenant, il sera de l'excellent travail.
Si vous trouvez des problèmes, puis laissez-moi savoir.
J'ai essayé avec ce, dans le contexte de champ:
et il fonctionne très bien pour moi. C'était à partir d'une classe qui s'étend de "Fragment":
J'ai eu la même exception. ce que je fais pour résoudre ce problème est de passer de l'instance de la boîte de dialogue
en tant que paramètre dans la fonction et l'utiliser au lieu de passer seulement contexte, puis en utilisant getContext(). cette solution de résoudre mon problème, j'espère que ça peut aider
Bonjour si vous utilisez l'adaptateur il y a peut être une chance.
Tout ce que vous devez savoir quand vous avez utilisé un dialogue dans l'adaptateur,getContext(),le contexte ou l'activité ne fonctionne pas de temps en temps.
Voici l'astuce que j'ai utilisé
v.getRootView().getContext()
où v est le point de vue de l'objet que vous référencez.
Par exemple.
J'ai eu cette exception, quand j'ai essayé d'ouvrir la boîte de Dialogue de Progression en vertu de Cordova Plugin en utilisant ci-dessous deux cas,
nouveau ProgressDialog(ce.cordoue.getActivity().getParent());
nouveau ProgressDialog(ce.cordoue.getActivity().getcontexteapplication());
Plus tard changé comme cela,
nouveau ProgressDialog(ce.cordoue.getActivity());
Sa fonctionne très bien pour moi.
Utilisez ce contexte et pas fonctionné pour moi..mais MyActivityName.cela a fonctionné. Espérons que cela aide quelqu'un qui en a besoin.
J'ai résolu cette erreur par ajouter l'utilisateur ci-dessous-autorisation AndroidManifest.xml
Aussi, Initialiser la boîte de dialogue d'Alerte avec le Nom de l'Activité:
Pour Plus de Détails, visitez==> Comment créer de la boîte de Dialogue d'Alerte dans Android