错误:E/Android运行时:致命异常:主要:由以下原因引起:在调用activateApp之前必须初始化Facebook SDK

fcg9iug3  于 2022-12-02  发布在  Android
关注(0)|答案(4)|浏览(298)

你好大家我有错误在我的android/java项目
E/AndroidRuntime: FATAL EXCEPTION: main
Caused by: The Facebook sdk must be initialized before calling activateApp
屏幕截图:
image 1
image 2

i2byvkas

i2byvkas1#

您没有添加任何代码来解释这个问题,但在搜索这个问题后,我发现您应该在onCreate()中添加SDK初始化方法,如下所示

@Override
    public void onCreate() {
        super.onCreate();
        FacebookSdk.sdkInitialize(getApplicationContext());
        AppEventsLogger.activateApp(this);
    }
y3bcpkx1

y3bcpkx12#

要在您的应用程序中使用Facebook广告SDK,您必须为您的应用程序创建一个应用程序类,并在那里初始化SDK。

import android.app.Application;

public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        FacebookSdk.sdkInitialize(getApplicationContext());
        AppEventsLogger.activateApp(this);
    }
}

把它放在你的载货单上。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <application
        android:name=".App"  <!-- Name of your app class -->
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        ........
        ........

    </application>
</manifest>
fjnneemd

fjnneemd3#

通过更新gradle清单中添加Facebook客户端令牌来解决它

<meta-data android:name="com.facebook.sdk.ClientToken"
android:value="@string/facebook_client_token"/>
nvbavucw

nvbavucw4#

我用RAGIP MULLAMUSA的回答解决了这个问题(抱歉,我没有足够的声誉来投票或评论)
当我尝试将Facebook SDK从9.x.x升级到最新版本(15.1.0)时,发现以下错误:
在调用activateApp之前必须初始化Facebook SDK
我试着把FacebookSdk.sdkInitialize(getApplicationContext());放在AppEventsLogger.activateApp(this);之前,但它不起作用。但错误将变成:
必须在AndroidManifest.xml中设置有效的Facebook应用客户端令牌,或在初始化SDK之前通过调用FacebookSdk.setClientToken进行设置。
您可以从https://developers.facebook.com/获取客户端令牌,并将其放在AndroidManifest.xml中

<manifest
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools">

  <application
    android:name=".App"
    ...
    ...>
  
    <meta-data
      android:name="com.facebook.sdk.ClientToken"
      android:value="YOUR_FACEBOOK_CLIENT_TOKEN" />
  </application>
</manifest>

注意:将客户端令牌放入清单后,您不需要保留FacebookSdk.sdkInitialize(getApplicationContext());
我试着把FacebookSdk.setClientToken(YOUR_FACEBOOK_CLIENT_TOKEN);放在super.onCreate();之前,但它不适合我。

相关问题