FacebookSdk.sdkInitialize(Context)已弃用

Oza*_*zan 93 android facebook deprecated facebook-android-sdk

我在Android Studio中使用facebook-android-sdk-4.19.0,然后按照Facebook快速入门指南访问https://developers.facebook.com/docs/android/getting-started(点击"快速启动"按钮使用您自己的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);
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Yup*_*upi 124

从有关升级SDK的文档:

Facebook SDK现在在应用程序启动时自动初始化.如果您在主进程中使用Facebook SDK并且在SDK初始化完成时不需要回调,则现在可以删除对FacebookSDK.sdkInitialize的调用.如果确实需要回调,则应在代码中手动调用回调.

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

UPDATE

在SDK 4.22中title,不推荐使用和description,caption以及image字段FBSDKShareLinkContent.考虑将它们从使用中删除.

  • FB SDK如何管理自己初始化`"在应用程序启动时"``而不需要在`Application.onCreate()`中添加任何内容? (8认同)
  • 回答我自己的评论:从v4.19.0开始,Facebook SDK初始化由ContentProvider完成,在应用程序清单中声明:https://github.com/facebook/facebook-android-sdk/commit/e610fe89f44dad8c4402fb34d0eb68abe4522af2#diff-1b1024d6bc6def0e7c192dab15687476 (5认同)
  • 收到了.谢谢. (2认同)
  • 如果我删除了sdkInitialize行,一些用户仍然遇到异常:"在调用activateApp之前必须初始化Facebook sdk",sdk版本:4.27.0,Android版本5.0 (2认同)

小智 13

FacebookSdk.sdkInitialize(getApplicationContext()); 
Run Code Online (Sandbox Code Playgroud)

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


Sah*_*tel 9

我的要求是在应用程序启动时禁用 autoInit 并从 Activity 的 onCreate 方法初始化它。应用程序启动之前的 AutoInit 导致我的 flutter 应用程序需要一些时间才能在慢速网络连接上启动。

  1. 从清单中禁用 AutoInit

    <meta-data android:name="com.facebook.sdk.AutoInitEnabled"
        android:value="false"/>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在activity的onCreate方法中初始化Fb sdk

    FacebookSdk.fullyInitialize();
    AppEventsLogger.activateApp(application);
    
    Run Code Online (Sandbox Code Playgroud)