我有 FacebookSdk.sdkInitialize(getApplicationContext()),其中 sdkInitialize() 显示为已弃用。根据这个 article 我们可以删除该行。但是后来我在 AppEventsLogger.activateApp(this) 之后的行中出现以下错误:

AndroidRuntime: FATAL EXCEPTION: main                                                                              Process: com.daimler.moovel.android:auth, PID: 4011                                java.lang.RuntimeException: Unable to create application com.daimler.moovel.android.DebugApplication: The Facebook sdk must be initialized before calling activateApp                                              at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5879)                                             at android.app.ActivityThread.-wrap3(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1699)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
Caused by: The Facebook sdk must be initialized before calling activateApp
at com.facebook.appevents.AppEventsLogger.activateApp(AppEventsLogger.java:226)
at com.facebook.appevents.AppEventsLogger.activateApp(AppEventsLogger.java:208)

那么我错过了什么?

最佳答案

那是因为您升级了 Facebook SDK 并且您正在尝试使用 AppEventsLogger providinig this 作为 Context 的实现:
AppEventsLogger.activateApp(this);
并且从 SDK 4.19 及更高版本替换为:
AppEventsLogger.activateApp(getApplication());
关于这个的文档说:



如果 Facebook SDK 现在在应用程序启动时自动初始化,则具有逻辑。

试试我希望这能解决你的问题。

关于android - 弃用的 FacebookSdk 方法抛出 RuntimeException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44544866/

10-08 21:15