FacebookSdk.sdkInitialize(Context)已弃用

时间:2017-01-26 22:47:05

标签: android facebook facebook-android-sdk deprecated

我在Android Studio中使用facebook-android-sdk-4.19.0,然后在https://developers.facebook.com/docs/android/getting-started点击Facebook快速入门指南(点击“快速启动”按钮,使用自己的Facebook帐户登录)。在指南中,它被告知要将以下代码复制并粘贴到代码段中以跟踪应用日志

import com.facebook.FacebookSdk;
import com.facebook.appevents.AppEventsLogger;

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

然而,当我在android studio中复制粘贴代码时,似乎不推荐使用所有的FacebookSdk.sdkInitialize()方法。这里的文档https://developers.facebook.com/docs/reference/android/current/class/FacebookSdk/没有说明用什么方法来初始化sdk而不是sdkInitialize()。我应该使用什么方法?

6 个答案:

答案 0 :(得分:117)

有关升级SDK的文档:

  

Facebook SDK现在已在应用程序启动时自动初始化。如果你   在主要过程中使用Facebook SDK而不需要   SDK初始化完成后回调你现在可以删除对它的调用   FacebookSDK.sdkInitialize。如果你确实需要回调,你应该   手动调用代码中的回调。

请参阅:https://developers.facebook.com/docs/android/upgrading-4x

<强>更新

在SDK 4.22中,不推荐使用title的{​​{1}},descriptioncaptionimage字段。考虑将它们从使用中删除。

答案 1 :(得分:7)

FacebookSdk.sdkInitialize(getApplicationContext()); 

不推荐使用此方法,因此只需在类中删除此行代码即可。因为根据最新的Facebook,我们现在不需要手动初始化SDK,它会自行初始化。

答案 2 :(得分:4)

所以,不要调用已弃用的方法,而是可以在应用程序类的onCreate()中调用AppEventsLogger.activateApp(Application)

public class MyApplication extends Application{

    @Override
    public void onCreate() {
        super.onCreate();
        AppEventsLogger.activateApp(getApplication());
    }
}

答案 3 :(得分:1)

我的要求是在应用启动时禁用autoInit,并通过Activity的onCreate方法对其进行初始化。应用启动前的AutoInit导致我的Flutter应用需要花费一些时间才能通过缓慢的网络连接启动。

  1. 从清单禁用自动初始化

    <meta-data android:name="com.facebook.sdk.AutoInitEnabled"
        android:value="false"/>
    
  2. 在活动的onCreate方法中初始化Fb sdk

    FacebookSdk.fullyInitialize();
    AppEventsLogger.activateApp(application);
    

答案 4 :(得分:0)

FacebookSdk.sdkInitialize(getApplicationContext());

不需要这种方法,因为Facebook文档说: 如果AndroidManifest中列出了正确的条目(例如facebook应用程序ID),则此函数将初始化在应用程序启动时自动调用Facebook SDK。可以通过“ com.facebook.sdk.AutoLogAppEventsEnabled”清单设置来控制来自“ activateApp”的自动事件记录。

答案 5 :(得分:-7)

我有同样的问题,这就是我解决它的方法: 将这行代码放在清单文件中

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

https://developers.facebook.com/docs/android/getting-started 感谢