Я использую facebook-android-sdk-4.19.0 в Android Studio, и я следил за кратким руководством по началу работы с 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);
}
}
Однако, когда я копирую вставленный код в студию Android, кажется, что все методы FacebookSdk.sdkInitialize () устарели. В документации здесь https://developers.facebook.com/docs/reference/android/current/class/FacebookSdk/ ничего не говорится о том, какой метод использовать для инициализации sdk вместо sdkInitialize (). Какой метод мне следует использовать?
Ответы:
Из документации по обновлению SDK:
Обратитесь к: https://developers.facebook.com/docs/android/upgrading-4x
ОБНОВИТЬ
В SDK 4.22
title
,description
,caption
иimage
полеFBSDKShareLinkContent
устарели. Рассмотрите возможность исключения их из использования.источник
"on Application start"
без необходимости добавлять что-либоApplication.onCreate()
?Этот метод устарел, поэтому просто удалите эту строку кода в своем классе. потому что, согласно последней версии Facebook, теперь нам не нужно инициализировать SDK вручную, он инициализируется сам.
источник
Поэтому вместо вызова устаревших методов вы можете вызывать
AppEventsLogger.activateApp(Application)
внутри класса приложения onCreate ()источник
public static void activateApp(Context context)
устарело. Предлагает воспользоваться этим . Для этого я заменилMainActivity.this
наgetApplication()
.MyApplication.this
тоже тот жеApplication
объект. Могу я спросить, на что его заменятьgetApplication()
? Я просто используюthis
(который также совпадает сMyApplication.this
), и он получен какApplication
Моим требованием было отключить autoInit при запуске приложения и инициализировать его с помощью метода onCreate Activity. AutoInit перед запуском приложения приводил к тому, что моему приложению flutter требовалось время для запуска при медленных сетевых подключениях.
Отключить AutoInit из манифеста
Инициализировать Fb sdk в методе onCreate действия
источник
FacebookSdk.sdkInitialize(getApplicationContext());
Нет необходимости в этом методе, как говорится в документе Facebook: эта функция инициализирует SDK Facebook, вызывается автоматически при запуске приложения, если в AndroidManifest указаны соответствующие записи, такие как идентификатор приложения facebook. Автоматическим ведением журнала событий из «activateApp» можно управлять с помощью настройки манифеста «com.facebook.sdk.AutoLogAppEventsEnabled».
источник