Se 'BadTokenException: Impossible d'ajouter de la fenêtre" lorsque vous essayez d'afficher Facebook de dialogue Android
Que je suis un Mauvais Jeton Exception lorsque essayant de montrer les publier sur le mur de dialogue de l'Facebook SDK(Ça arrive tous les 2 fois j'ai l'exécution de l'application).
J'ai un bouton 'publier', et son travail est de montrer la boîte de dialogue si l'utilisateur est connecté à son compte FB, ou afficher la boîte de dialogue de connexion(et puis montrer immédiatement le post sur le mur de dialogue") si l'utilisateur n'est pas connecté à son compte.
Voici le clic de l'écouteur du bouton Publier -
mPostButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(mLoginButton.getVisibility() == 0)
postOnWall();
else
mLoginButton.performClick();
}
});
Voici la onAuthSucceed() auditeur -
public void onAuthSucceed() {
postOnWall();
}
Voici la PostOnWall fonction(qui affiche la boîte de dialogue de publication) -
public void postOnWall()
{
Bundle params = new Bundle();
params.putString("name", FBname);
params.putString("link", FBlink);
params.putString("description", FBdescription);
params.putString("picture", FBpicture);
con = this;
mFacebook.dialog(con, "feed", params, new SampleDialogListener());
}
Voici le log de l'erreur -
05-05 16:25:09.601: WARN/WindowManager(109): Attempted to add application window with unknown token HistoryRecord{405416b0 android.alco/.do_drive}. Aborting.
05-05 16:25:27.292: ERROR/AndroidRuntime(20089): android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@405db9f8 is not valid; is your activity running?
05-05 16:25:27.292: ERROR/AndroidRuntime(20089): at android.view.ViewRoot.setView(ViewRoot.java:527)
05-05 16:25:27.292: ERROR/AndroidRuntime(20089): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
05-05 16:25:27.292: ERROR/AndroidRuntime(20089): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
05-05 16:25:27.292: ERROR/AndroidRuntime(20089): at android.view.Window$LocalWindowManager.addView(Window.java:424)
05-05 16:25:27.292: ERROR/AndroidRuntime(20089): at android.app.Dialog.show(Dialog.java:241)
05-05 16:25:27.292: ERROR/AndroidRuntime(20089): at com.facebook.android.Facebook.dialog(Facebook.java:622)
05-05 16:25:27.292: ERROR/AndroidRuntime(20089): at android.alco.do_drive.postOnWall(do_drive.java:258)
05-05 16:25:27.292: ERROR/AndroidRuntime(20089): at android.alco.do_drive$SampleAuthListener.onAuthSucceed(do_drive.java:172)
05-05 16:25:27.292: ERROR/AndroidRuntime(20089): at android.alco.SessionEvents.onLoginSuccess(SessionEvents.java:78)
05-05 16:25:27.292: ERROR/AndroidRuntime(20089): at android.alco.LoginButton$LoginDialogListener.onComplete(LoginButton.java:100)
05-05 16:25:27.292: ERROR/AndroidRuntime(20089): at com.facebook.android.Facebook$1.onComplete(Facebook.java:308)
05-05 16:25:27.292: ERROR/AndroidRuntime(20089): at com.facebook.android.FbDialog$FbWebViewClient.shouldOverrideUrlLoading(FbDialog.java:133)
J'ai cherché partout et je ne peux pas trouver une solution.
MODIFIER - Ce qui se passe lorsque l'utilisateur n'est pas connecté. Dans ce cas, il appuie sur le bouton 'publier', dans les journaux, et puis la postOnWall la fonction est appelée, ce qui génère l'erreur. Je travaille dessus depuis 2 jours maintenant, et je ne pouvais pas trouver quoi que ce soit.
Merci!
BadTokenException
presque a toujours à voir avec la Context
vous passer. Qu'est-ce que votre this
pointeur?C'est le contexte d'activité, et non de l'application. Si j'ai utilisé le contexte de l'application d'une autre erreur serait de se présenter. Ce n'est pas le cas.
OriginalL'auteur Tofira | 2011-05-05
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur Sanghoon-Jeong
Et bien sûr il y a le cas où un code tel que
est exécuté à l'intérieur d'un ActivityGroup classe dérivée, comme dans le cas de la commutation entre de nombreuses Activités sous un seul onglet d'un des onglets de l'Activité. Assurez-vous que le " il " dans
est remplacé par une référence à la WhateverActivity parent comme
OriginalL'auteur kellogs
Il semble que vous avez donné une méthode avec un contexte d'activité/objet qui n'est plus actif.
Probablement dans le postOnWall-méthode.
Est le
this
dans la méthode actuellement affichées activité?OriginalL'auteur yymer