Android – Facebook SDK 4.30初始化

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

The SDK has not been initialized,make sure to call
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.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)

当强制在应用程序上调用已弃用的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)

P.S:
 尝试使用Facebook登录按钮时出错

Error inflating class com.facebook.login.widget.LoginButton

最佳答案
提醒一下,如果有人这样定义的话

<Meta-data android:name="com.facebook.sdk.ApplicationId" android:value="1234"/>

不是https://developers.facebook.com/docs/android/getting-started中的要求

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

他们会得到的

The SDK has not been initialized,make sure to call
FacebookSdk.sdkInitialize()

我在Facebook Share SDK 4.31.0中遇到了这种情况

compile 'com.facebook.android:facebook-share:4.31.0'

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...