2016-04-25 136 views
0

我試圖用Facebook登錄按鈕創建一個簡單的應用程序,我使用了教程,並且應用程序啓動,Facebook登錄按鈕在那裏,但是當我按下它時,應用程序「退出」(在任務切換器中仍然可見) 。Android - Facebook SDK registerCallback從未被調用?

我試圖用

compile 'com.facebook.android:facebook-android-sdk:4.6.0' 

compile 'com.facebook.android:facebook-android-sdk:4.11.0' 

爲好。

日誌並沒有說什麼特別的:

04-24 19:03:08.721 1569-1569/com.example.fblogin D/FLRT: onCreate 
04-24 19:03:08.721 1569-1569/com.example.fblogin D/FLRT: facebookSDKInitialize 
04-24 19:03:08.761 1569-1648/com.example.fblogin D/libc-netbsd: [getaddrinfo]: hostname=xxxxx; servname=(null); cache_mode=(null), netid=0; mark=0 
04-24 19:03:08.762 1569-1648/com.example.fblogin D/libc-netbsd: [getaddrinfo]: ai_addrlen=0; ai_canonname=xxxxx; ai_flags=4; ai_family=0 
04-24 19:03:08.762 1569-1648/com.example.fblogin D/libc-netbsd: [getaddrinfo]: hostname=xxxxx; servname=(null); cache_mode=(null), netid=0; mark=0 
04-24 19:03:08.762 1569-1648/com.example.fblogin D/libc-netbsd: [getaddrinfo]: ai_addrlen=0; ai_canonname=xxxxx; ai_flags=1024; ai_family=0 
04-24 19:03:08.766 1569-1648/com.example.fblogin I/System.out: propertyValue:false 
04-24 19:03:08.832 1569-1569/com.example.fblogin I/PhoneWindow: [generateLayout] setColorNavigationBar => color=0x ff000001 
04-24 19:03:08.833 1569-1569/com.example.fblogin D/PhoneWindowEx: [PWEx][generateLayout] setNavigationBarColor2 : colors=0xfff5f5f5 
04-24 19:03:08.833 1569-1569/com.example.fblogin I/PhoneWindow: [setNavigationBarColor2] color=0x fff5f5f5 
04-24 19:03:08.850 1569-1569/com.example.fblogin D/FLRT: getLoginDetails 
04-24 19:03:08.874 1569-1671/com.example.fblogin D/OpenGLRenderer: Render dirty regions requested: true 
04-24 19:03:08.875 1569-1671/com.example.fblogin I/Adreno-EGL: <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_LA.BF.1.1.1_RB1.05.00.02.042.013_msm8974_LA.BF.1.1.1_RB1__release_AU() 
                    OpenGL ES Shader Compiler Version: E031.25.03.00 
                    Build Date: 01/21/15 Wed 
                    Local Branch: mybranch7061829 
                    Remote Branch: quic/LA.BF.1.1.1_rb1.7 
                    Local Patches: NONE 
                    Reconstruct Branch: AU_LINUX_ANDROID_LA.BF.1.1.1_RB1.05.00.02.042.013 + NOTHING 
04-24 19:03:08.876 1569-1671/com.example.fblogin I/OpenGLRenderer: Initialized EGL, version 1.4 
04-24 19:03:08.894 1569-1671/com.example.fblogin D/OpenGLRenderer: Enabling debug mode 0 
04-24 19:03:08.902 1569-1569/com.example.fblogin D/Atlas: Validating map... 
04-24 19:03:09.113 1569-1569/com.example.fblogin I/Timeline: Timeline: Activity_idle id: [email protected] time:5375840 
04-24 19:03:35.675 1569-1569/com.example.fblogin I/ViewRootImpl: ViewRoot's Touch Event : ACTION_DOWN 
04-24 19:03:35.711 1569-1569/com.example.fblogin I/ViewRootImpl: ViewRoot's Touch Event : ACTION_UP 

最後2項(觸摸事件:ACTION_DOWN和ACTION_UP)是按下登錄按鈕的日誌。之後,沒有日誌條目。

活動:

public class LoginActivity extends AppCompatActivity { 

public static final String FLRT = "FLRT"; 

    private LoginButton loginButton; 

    public CallbackManager callbackManager; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     Log.d(FLRT, "onCreate"); 

     facebookSDKInitialize(); 

     setContentView(R.layout.activity_login); 

     loginButton = (LoginButton) findViewById(R.id.login_button); 
     loginButton.setReadPermissions("public_profile", "user_friends","user_birthday","user_about_me","email"); 
     getLoginDetails(loginButton); 

    } 

    @Override 
    public void onBackPressed() { 
     LoginActivity.this.finish(); 
     super.onBackPressed(); 
    } 

    protected void facebookSDKInitialize() { 
     Log.d(FLRT, "facebookSDKInitialize"); 

     FacebookSdk.sdkInitialize(LoginActivity.this); 
     AppEventsLogger.activateApp(this); 
     callbackManager = CallbackManager.Factory.create(); 
    } 

    protected void getLoginDetails(LoginButton login_button){ 
     Log.d(FLRT, "getLoginDetails"); 

     // Callback registration 
     login_button.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
      @Override 
      public void onSuccess(LoginResult login_result) { 

       Log.d(FLRT, "Facebook Login: Successful!"); 
      } 

      @Override 
      public void onCancel() { 
       // code for cancellation 

       Log.d(FLRT, "Facebook Login: Canceled!"); 
      } 

      @Override 
      public void onError(FacebookException exception) { 
       // code to handle error 

       Log.d(FLRT, "Facebook Login: Error: " + exception.toString()); 
      } 
     }); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     Log.d(FLRT, "onActivityResult"); 

     callbackManager.onActivityResult(requestCode, resultCode, data); 
     Log.e("data",data.toString()); 
    } 
} 

它在哪裏失敗?

謝謝!

回答

0

有你添加的應用ID在AndroidManifest.xml中

<meta-data 
      android:name="com.facebook.sdk.ApplicationId" 
      android:value="@string/facebook_app_id" />