RuntimeException:必须在调用activateApp之前初始化Facebook sdk

Rob*_*Rob 2 android facebook

在已经拆我的应用程序为2个不同的模块(一module和的 application一个),我不得不添加tools:node="replace"的<application>节点,因为我是有清单合并的问题(与Facebook和火力地堡).

自从我这样做以来,一切正常但我的应用程序现在在运行时因此异常而崩溃: The Facebook sdk must be initialized before calling activateApp

但是我正在这样初始化应用程序(在类扩展中Application):

FacebookSdk.setApplicationId(getString(R.string.facebook_app_id));
AppEventsLogger.activateApp(this); // this = instance of Application
Run Code Online (Sandbox Code Playgroud)

我以前什么都没改过,以前它工作得很好,但现在我得到了这个崩溃.我不知道该怎么做......没有发现任何关于这个可以帮助我.

谢谢你的帮助.

编辑:这是相关的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest package="package"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" >

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <uses-permission android:name="android.permission.CAMERA" />

    <uses-permission android:name="android.permission.FLASHLIGHT" />

    <uses-permission android:name="android.permission.INTERNET" />

    <uses-permission android:name="android.permission.READ_CONTACTS" />

    <uses-permission android:name="android.permission.RECORD_AUDIO" />

    <uses-permission android:name="android.permission.VIBRATE" />

    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

    <uses-permission android:name="package.permissions.C2D_MESSAGE" />

    <permission android:name="package.permissions.C2D_MESSAGE" android:protectionLevel="signature" />

    <application
        android:name=".application.MyApplication"
        android:allowBackup="true"
        android:icon="@mipmap/app_icon"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/Theme"
        tools:node="replace" >

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

        <provider android:authorities="com.facebook.app.FacebookContentProvider#############"
            android:name="com.facebook.FacebookContentProvider"

            android:exported="true"/>

        <provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="${applicationId}.provider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider_paths"/>
        </provider>

    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

Dei*_*man 5

我有同样的问题,我使用更新指南解决它

请尝试更改方法onCreate从MainApplication.java到: @Override public void onCreate() { super.onCreate(); FacebookSdk.sdkInitialize(getApplicationContext()); AppEventsLogger.activateApp(this); }

  • 是的,奇怪的是,即使Facebook弃用了`sdkInitialize`方法,我们也不得不添加它来避免这种崩溃. (3认同)