我試圖從Facebook SDK顯示牆上發佈對話框時收到錯誤的令牌異常(每兩次發生一次我運行應用程序)。嘗試顯示Facebook對話框時出現'BadTokenException:無法添加窗口' - Android
我有一個'發佈'按鈕,它的工作是顯示對話框,如果用戶登錄到他的FB帳戶,或顯示登錄對話框(然後立即顯示'貼在牆上'對話框)如果該用戶未登錄到他的帳戶。
這裏是上發佈按鈕的點擊監聽器 -
mPostButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(mLoginButton.getVisibility() == 0)
postOnWall();
else
mLoginButton.performClick();
}
});
這裏的onAuthSucceed()監聽器 -
public void onAuthSucceed() {
postOnWall();
}
這裏的PostOnWall功能(其中顯示了發佈對話框) -
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());
}
以下是錯誤的日誌 -
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 [email protected] 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)
我看了所有,我找不到解決方案。
編輯 - 這隻發生在用戶沒有登錄的情況下。在這種情況下,他按下'發佈'按鈕,登錄,然後調用'postOnWall'函數,這會產生錯誤。我現在正在爲此工作2天,並且找不到任何相關信息。
謝謝!
'BadTokenException'幾乎總是用'Context'傳遞給它做。你的'this'指針是什麼? – 2011-05-05 14:07:25
這是活動的上下文,而不是應用程序的。如果我使用應用程序上下文,則會顯示不同的錯誤。情況並非如此。 – Tofira 2011-05-05 14:09:46