FacebookSdk.sdkInitialize(上下文)已弃用
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 的文档:
The Facebook SDK is now auto initialized on Application start. If you
are using the Facebook SDK in the main process and don't need a
callback on SDK initialization completion you can now remove calls to
FacebookSDK.sdkInitialize. If you do need a callback, you should
manually invoke the callback in your code.
参考:https://developers.facebook.com/docs/android/upgrading-4x
更新
在 SDK 4.22 中,FBSDKShareLinkContent
的 title
、description
、caption
和 image
字段已弃用。考虑不再使用它们。
因此,您可以在应用程序 class 的 onCreate()
中调用 AppEventsLogger.activateApp(Application)
,而不是调用已弃用的方法
public class MyApplication extends Application{
@Override
public void onCreate() {
super.onCreate();
AppEventsLogger.activateApp(getApplication());
}
}
FacebookSdk.sdkInitialize(getApplicationContext());
此方法已弃用,因此只需删除 class 中的这行代码即可。因为根据最新的 Facebook,我们现在不需要手动初始化 SDK,它会自行初始化。
我的要求是在应用程序启动时禁用 autoInit 并从 Activity 的 onCreate 方法对其进行初始化。应用启动前的 AutoInit 导致我的 flutter 应用在慢速网络连接上需要时间启动。
从清单中禁用 AutoInit
<meta-data android:name="com.facebook.sdk.AutoInitEnabled"
android:value="false"/>
在activity的onCreate方法中初始化Fb sdk
FacebookSdk.fullyInitialize();
AppEventsLogger.activateApp(application);
FacebookSdk.sdkInitialize(getApplicationContext());
不需要像 Facebook 文档所说的这种方法:
如果 AndroidManifest 中列出了正确的条目(例如 facebook 应用程序 ID),此函数会初始化 Facebook SDK,并在应用程序启动时自动调用。 'activateApp' 的自动事件记录可以通过 'com.facebook.sdk.AutoLogAppEventsEnabled' 清单设置进行控制。
我在 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 的文档:
The Facebook SDK is now auto initialized on Application start. If you are using the Facebook SDK in the main process and don't need a callback on SDK initialization completion you can now remove calls to FacebookSDK.sdkInitialize. If you do need a callback, you should manually invoke the callback in your code.
参考:https://developers.facebook.com/docs/android/upgrading-4x
更新
在 SDK 4.22 中,FBSDKShareLinkContent
的 title
、description
、caption
和 image
字段已弃用。考虑不再使用它们。
因此,您可以在应用程序 class 的 onCreate()
中调用AppEventsLogger.activateApp(Application)
,而不是调用已弃用的方法
public class MyApplication extends Application{
@Override
public void onCreate() {
super.onCreate();
AppEventsLogger.activateApp(getApplication());
}
}
FacebookSdk.sdkInitialize(getApplicationContext());
此方法已弃用,因此只需删除 class 中的这行代码即可。因为根据最新的 Facebook,我们现在不需要手动初始化 SDK,它会自行初始化。
我的要求是在应用程序启动时禁用 autoInit 并从 Activity 的 onCreate 方法对其进行初始化。应用启动前的 AutoInit 导致我的 flutter 应用在慢速网络连接上需要时间启动。
从清单中禁用 AutoInit
<meta-data android:name="com.facebook.sdk.AutoInitEnabled" android:value="false"/>
在activity的onCreate方法中初始化Fb sdk
FacebookSdk.fullyInitialize(); AppEventsLogger.activateApp(application);
FacebookSdk.sdkInitialize(getApplicationContext());
不需要像 Facebook 文档所说的这种方法: 如果 AndroidManifest 中列出了正确的条目(例如 facebook 应用程序 ID),此函数会初始化 Facebook SDK,并在应用程序启动时自动调用。 'activateApp' 的自动事件记录可以通过 'com.facebook.sdk.AutoLogAppEventsEnabled' 清单设置进行控制。