Android - Facebook SDK registerCallback永远不会被调用?

时间:2016-04-25 10:59:19

标签: android facebook callback

我尝试使用Facebook登录按钮构建一个简单的应用程序,我使用了教程,应用程序启动,Facebook登录按钮就在那里,但是当我按下它时,应用程序“退出”(在任务切换器中仍然可见) )。

我尝试使用

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: android.os.BinderProxy@23deb521 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());
     }
}

哪里失败了?

谢谢!

1 个答案:

答案 0 :(得分:0)

您是否已将应用ID添加到AndroidManifest.xml

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