2017-10-10 79 views
0

当我尝试初始化它总是不赞成的函数调用FacebookSdk,当我建立/运行我的应用程序退出由导致错误”:该SDK尚未初始化,请确保调用FacebookSdk.sdkInitialize()第一如何在Android应用程序中实现Facebook登录?

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    FacebookSdk.setApplicationId("165020910744675"); 
    FacebookSdk.sdkInitialize(this); 
    setContentView(R.layout.activity_main); 

    callbackManager = CallbackManager.Factory.create(); 
    loginButton = (LoginButton) findViewById(R.id.login_button); 
    loginButton.setHeight(100); 
    loginButton.setTextColor(Color.WHITE); 
    loginButton.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null); 
    loginButton.setCompoundDrawablePadding(0); 


    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult loginResult) { 
      Log.d(TAG,"success!!! go home."); 
     } 

     @Override 
     public void onCancel() { 
      Log.d(TAG,"cancel!!! don't go home."); 
     } 

     @Override 
     public void onError(FacebookException error) { 

     } 
    }); 

如果我们去掉FacebookSdk.sdkInitialize()函数(如FB API说),它会导致同样的错误

+4

可能重复[如何实现Facebook登录在Android使用Facebook的SDK 4.7](https://stackoverflow.com/questions/33584031/how-to-implement-facebook-login-in-android-using-facebook- SDK-4-7) – InsaneCat

回答

0

从有关升级SDK文档:

Facebook的SDK现已自动初始化上应用程序启动。如果您正在使用Facebo在主进程中确定SDK并且不需要SDK初始化完成时的回调,现在可以删除对FacebookSDK.sdkInitialize的调用。如果您确实需要回调,则应该在代码中手动调用回调。

参见:https://developers.facebook.com/docs/android/upgrading-4x

在SDK 4.22的标题,说明字幕和FBSDKShareLinkContent的像场已被弃用。考虑从使用中删除它们。

相关问题