Android - Facebook SDK 4.30初始化

Pet*_*lmy 5 android facebook android-fragments facebook-login facebook-sdk-4.x

在使用最新的SDK版本4.30时尝试通过Facebook登录时出现以下错误:

SDK尚未初始化,请务必致电 FacebookSdk.sdkInitialize()

然后应用程序崩溃.

虽然,在官方文档中,它应该已经自动初始化.

请注意,FacebookSdk.sdkInitialize()现在已弃用,因此不应调用它!

不调用时出错FacebookSdk.sdkInitialize():

  The SDK has not been initialized, make sure to call
 FacebookSdk.sdkInitialize() first.   at
 com.facebook.internal.Validate.sdkInitialized(Validate.java:143)   at
 com.facebook.login.LoginManager.<init>(LoginManager.java:79)    at
 com.facebook.login.LoginManager.getInstance(LoginManager.java:92)   
 at
 com.linkdev.tepdeal.login.LoginPresenter.loginWithFacebook(LoginPresenter.java:88)
 at
 com.linkdev.tepdeal.login.FragmentLogin.onClick(FragmentLogin.java:105)
 at android.view.View.performClick(View.java:5637) at
 android.view.View$PerformClick.run(View.java:22433)    at
 android.os.Handler.handleCallback(Handler.java:751)     at
 android.os.Handler.dispatchMessage(Handler.java:95) at
 android.os.Looper.loop(Looper.java:154) at
 android.app.ActivityThread.main(ActivityThread.java:6186) at
 java.lang.reflect.Method.invoke(Native Method)  at
 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
Run Code Online (Sandbox Code Playgroud)

当强制FacebookSdk.sdkInitialize()在应用程序上调用已弃用时,会发生以下错误:

java.lang.NoClassDefFoundError: Failed resolution of:
Lcom/facebook/common/R$layout;                    at
com.facebook.FacebookActivity.onCreate(FacebookActivity.java:77)    
at android.app.Activity.performCreate(Activity.java:6684)    at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
Run Code Online (Sandbox Code Playgroud)

PS:尝试使用Facebook登录按钮时出错

扩展类com.facebook.login.widget.LoginButton时出错

小智 1

当您忘记在清单文件中添加 Facebook 应用程序 ID 时,通常会出现此问题。

请按照以下步骤操作,以确保您不会错过任何内容。

Android 版 Facebook 登录 - 快速入门