Android 'Impossible d'ajouter une fenêtre - le jeton null n'est pas pour une application' exception



Answers

Vous pouvez continuer à utiliser getApplicationContext() , mais avant de l'utiliser, vous devez ajouter cet indicateur: dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT) , et l'erreur ne s'affichera pas.

Et n'oubliez pas d'ajouter la permission:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
Question

Je reçois l'exception Android suivante lorsque j'essaie d'ouvrir une boîte de dialogue. Quelqu'un peut-il m'aider s'il vous plaît à 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)



J'ai essayé avec ceci dans le champ de contexte:

this.getActivity().getParent()

et ça marche bien pour moi. Cela venait d'une classe qui s'étend de "Fragment":

public class filtro extends Fragment{...



Essayez getParent() à l'endroit du context argument comme new AlertDialog.Builder(getParent()); J'espère que ça va marcher, ça a marché pour moi.




Utilisez ceci et le contexte n'a pas fonctionné pour moi .. mais MyActivityName.this a fonctionné. J'espère que cela aidera tous ceux qui en ont besoin.




Links