2016-04-25 15 views
0

Ich habe versucht, eine einfache App mit einem Facebook Login Button zu bauen, ich habe ein Tutorial verwendet, und die App startet, die Facebook Login Schaltfläche ist da, aber wenn ich sie drücke, "beendet" die App (immer noch im Task Switcher sichtbar) .Android - Facebook SDK registerCallback wird nie aufgerufen?

Ich versuchte

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

und

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

als auch zu verwenden.

Das Protokoll sagt keine besondere:

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 

Die letzten 2 Einträge (Touch Veranstaltung: ACTION_DOWN und ACTION_UP) sind die Protokolle der Login-Taste drücken. Danach gibt es keine Protokolleinträge mehr.

Die Aktivität:

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()); 
    } 
} 

Wo kommt nicht wahr?

Danke!

Antwort

0

haben Sie App-ID der AndroidManifest.xml

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