簡體   English   中英

FacebookSdk.sdkInitialize (Context) 已棄用

[英]FacebookSdk.sdkInitialize (Context) is 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()。 我應該使用什么方法?

來自關於升級SDK的文檔:

Facebook SDK 現在在應用程序啟動時自動初始化。 如果您在主進程中使用 Facebook SDK,並且在 SDK 初始化完成時不需要回調,您現在可以刪除對 FacebookSDK.sdkInitialize 的調用。 如果確實需要回調,則應在代碼中手動調用回調。

參考: https : //developers.facebook.com/docs/android/upgrading-4x

更新

在 SDK 4.22 中, FBSDKShareLinkContenttitledescriptioncaptionimage字段已棄用。 考慮將它們從使用中移除。

FacebookSdk.sdkInitialize(getApplicationContext()); 

此方法已棄用,因此只需刪除類中的這行代碼即可。 因為根據最新的 Facebook 我們現在不需要手動初始化 SDK,它會自行初始化。

因此,您可以在應用程序類的 onCreate() 中調用AppEventsLogger.activateApp(Application)而不是調用已棄用的方法

public class MyApplication extends Application{

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

我的要求是在應用程序啟動時禁用 autoInit 並從 Activity 的 onCreate 方法初始化它。 應用程序啟動前的 AutoInit 導致我的 Flutter 應用程序需要時間在慢速網絡連接上啟動。

  1. 從清單中禁用 AutoInit

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

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

FacebookSdk.sdkInitialize(getApplicationContext());

不需要此方法,正如 Facebook 文檔所說:如果 AndroidManifest 中列出了正確的條目,例如 facebook 應用程序 ID,則此函數會在應用程序啟動時自動調用該函數初始化 Facebook SDK。 來自“activateApp”的自動事件記錄可以通過“com.facebook.sdk.AutoLogAppEventsEnabled”清單設置來控制。

Android:

在 AndroidManifest.xml 添加這一行

<meta-data android:name="com.facebook.sdk.ClientToken" android:value="YOUR-CLIENT-TOKEN-HERE" />

對於客戶端 ID,請檢查以下鏈接-

https://developers.facebook.com/apps/Your_App_ID/settings/advanced/

我有同樣的問題,這就是我的解決方法:將這行代碼放入清單文件中

    <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謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM