3

我有FacebookSdk.sdkInitialize(getApplicationContext())其中sdkInitialize()显示为不建议使用。根据这article我们可以删除该行。但后来我得到AppEventsLogger.activateApp(this)继为行错误:弃用的FacebookSdk方法抛出RuntimeException

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) 

所以我缺少什么?

回答

2

那是因为你升级你的Facebook SDK和你正在试图为Context使用AppEventsLogger providinig this的FPGA实现:

AppEventsLogger.activateApp(this);

和从SDK 4.19替换成以上:

AppEventsLogger.activateApp(getApplication());

相关文档说明:

通知事件系统该应用程序已启动并激活和停用事件应开始自动记录。这应该从应用程序的OnCreate方法中调用。

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

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

+1

yupi,我已经添加了'AppEventsLogger.activateApp(getApplication());',仍然有一些架构上的用户崩溃,不知道如何解决这个问题,崩溃是仅针对某些用户 –

2

没有必要的AppEventsLogger.activateApp(this);如果你现在已经成立了的manifest.xml facebook_id不要求你刚刚要加入应用标签下面的manifest.xml中

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

其中facebook_app_id在字符串定义.xml

相关问题