0

我正在關注Facebook Android SDK tutorial,並且我的所有代碼都在我的應用中引導到此步驟。我啓動應用程序(我的手機上測試它,但確實在仿真器相同),並將該畫面出現:無法獲取Facebook登錄屏幕?

enter image description here

好,太好了!

但是,一旦它完成加載,而不是任何形式的登錄屏幕上來喜歡這裏給出的例子:

enter image description here

我剛剛想出這個:

enter image description here

代碼:

package com.greatapp; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import com.facebook.android.*; 
import com.facebook.android.Facebook.*; 

public class MyGreatActivity extends Activity { 

Facebook facebook = new Facebook("MY_APP_ID"); 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    facebook.authorize(this, new DialogListener() { 
     @Override 
     public void onComplete(Bundle values) {} 

     @Override 
     public void onFacebookError(FacebookError error) {} 

     @Override 
     public void onError(DialogError e) {} 

     @Override 
     public void onCancel() {} 
    }); 
} 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    facebook.authorizeCallback(requestCode, resultCode, data); 
    } 
} 

好的,我刪除了該項目並重新開始。之前的這個屏幕正在做一些事情,但一直重複加載這個加載屏幕。幾乎就像是聯繫Facebook的服務器1000個不同的東西,每個人都有一個加載屏幕。我不知道該怎麼辦。 Logcat沒有錯誤。

enter image description here

+0

你有手機上安裝的本機應用程序FB? – 2013-05-10 21:02:18

回答

0

這對我的作品。 logcat中是否有任何錯誤消息? 你使用互聯網許可嗎? 檢查這些東西。

或者你已經完成

或在代碼中添加一些日誌,例如:

 facebook.authorize(this, new DialogListener() { 
     @Override 
     public void onComplete(Bundle values) { 
      Log.d("onComplete",""+values); 
     } 

     @Override 
     public void onFacebookError(FacebookError error) { 
      Log.d("onFacebookError",""+error); 
     } 

     @Override 
     public void onError(DialogError e) { 
      Log.d("onError",""+e); 
     } 

     @Override 
     public void onCancel() { 
      Log.d("onCancel","cancel"); 
     } 
    }); 

,看看導致您的logcat

+0

增加了INTERNET。 LogCat中沒有錯誤。添加代碼後,我沒有在Logcat中得到任何東西。沒有錯誤,沒有。 – Cole 2012-03-19 20:17:03

0

就修改你這樣的代碼:

import com.facebook.android.*; 
import com.facebook.android.Facebook.*; 

public class MyGreatActivity extends Activity { 
public static final String[] PERMISSIONS = new String[] {"email", "publish_checkins", "publish_stream","offline_access"}; 
Facebook facebook = new Facebook("MY_APP_ID"); 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    facebook.authorize(this,PERMISSIONS,Facebook.FORCE_DIALOG_AUTH, new DialogListener() { 
     @Override 
     public void onComplete(Bundle values) {} 

     @Override 
     public void onFacebookError(FacebookError error) {} 

     @Override 
     public void onError(DialogError e) {} 

     @Override 
     public void onCancel() {} 
    }); 
} 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    facebook.authorizeCallback(requestCode, resultCode, data); 
    } 
} 

Facebook.FORCE_DIALOG_AUTH ---> will login facebook forcefully

您還需要致電facebook.logout(上下文)註銷當前方法的方法,然後用新用戶登錄。

用戶這種方法:

public void Logout() throws MalformedURLException, IOException { 
     facebook.logout(mContext); 
    }