我有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)
那我错过了什么?
答案 0 :(得分:9)
如果您在manifest.xml中设置了facebook_id,则不需要AppEventsLogger.activateApp(this);
现在不需要 <meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
你只需要在manifest.xml
$http({method: 'GET', url: '/config'}).then(function(res) {
configProvider.setConfig(res.data.config);
}
其中facebook_app_id在string.xml中定义
答案 1 :(得分:3)
这是因为您升级了Facebook SDK
,并且您尝试将AppEventsLogger
providinig this
的实施用作Context
:
AppEventsLogger.activateApp(this);
并且从SDK 4.19及更高版本替换为:
AppEventsLogger.activateApp(getApplication());
有关此内容的文档说明:
通知事件系统应用程序已启动并激活和停用应自动开始记录的事件。这应该从您的应用程序的OnCreate方法调用。
如果Facebook SDK
现在在应用程序启动时自动初始化,则具有逻辑。
尝试我希望这可以解决您的问题。