FacebookSdk.sdkInitialize(Контекст) устарел
Я использую facebook-android-sdk-4.19.0 в Android Studio, и я следил за быстрым руководством по Facebook в https://developers.facebook.com/docs/android/getting-started (нажмите Quick Кнопка "Старт", чтобы войти в свою учетную запись на 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);
}
}
Однако, когда я копирую код в андроид-студии, кажется, что все методы FacebookSdk.sdkInitialize() устарели. Документация здесь https://developers.facebook.com/docs/reference/android/current/class/FacebookSdk/ ничего не сообщает о том, какой метод использовать для инициализации sdk вместо sdkInitialize(). Какой метод следует использовать?
Ответы
Ответ 1
Из документации по обновлению SDK:
Теперь SDK Facebook автоматически инициализируется при запуске приложения. если ты используют SDK для Facebook в основном процессе и не нуждаются в обратный вызов при завершении инициализации SDK, теперь вы можете удалить вызовы FacebookSDK.sdkInitialize. Если вам нужен обратный вызов, вы должны вручную вызовите обратный вызов в вашем коде.
Обратитесь к: https://developers.facebook.com/docs/android/upgrading-4x
UPDATE
В SDK 4.22 поля title
, description
, caption
и image
FBSDKShareLinkContent
устарели. Попробуйте удалить их из использования.
Ответ 2
FacebookSdk.sdkInitialize(getApplicationContext());
Этот метод устарел, поэтому просто удалите эту строку кода в вашем классе. потому что, согласно последним версиям Facebook, нам не нужно инициализировать SDK вручную, он инициализируется сам по себе.
Ответ 3
Так что вместо вызова устаревших методов вы можете вызвать AppEventsLogger.activateApp(Application)
внутри класса приложения onCreate()
public class MyApplication extends Application{
@Override
public void onCreate() {
super.onCreate();
AppEventsLogger.activateApp(getApplication());
}
}
Ответ 4
У меня была такая же эмиссия, и вот как я ее разрешаю:
Поместите эту строку кода в файл манифеста
<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
Благодаря