[英]FacebookSdk.sdkInitialize(getApplicationContext()) Deprecated
[英]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 中, FBSDKShareLinkContent
的title
、 description
、 caption
和image
字段已棄用。 考慮將它們從使用中移除。
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 應用程序需要時間在慢速網絡連接上啟動。
從清單中禁用 AutoInit
<meta-data android:name="com.facebook.sdk.AutoInitEnabled" android:value="false"/>
在活動的 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.