2017-01-26 2 views
57

Я использую facebook-android-sdk-4.19.0 в Android Studio, и я последовал за быстрым руководством по Facebook в https://developers.facebook.com/docs/android/getting-started (Нажмите кнопку быстрого запуска, чтобы войти в свой аккаунт аккаунт в Фэйсбуке). В руководстве, он сказал, чтобы скопировать & вставьте следующий код в фрагменте кода, чтобы отслеживать журналы приложенийFacebookSdk.sdkInitialize (Context) устарел

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(). Какой метод следует использовать?

+0

Если ответ помог вам, пожалуйста, отмечен как правильный ответ или если у вас все еще есть та же проблема, мы можем продолжить поиск. – Yupi

ответ

85

Из документации об обновлении SDK:

The Facebook SDK теперь автоматически инициализируются при запуске приложения. Если вы используете SDK для Facebook в основном процессе и не нуждаетесь в обратном вызове при завершении инициализации SDK, теперь вы можете удалить вызовы на FacebookSDK.sdkInitialize. Если вам нужен обратный вызов, вы должны вручную вызвать обратный вызов в вашем коде.

См: https://developers.facebook.com/docs/android/upgrading-4x

UPDATE

В SDK 4.22 title, description, caption и image поле FBSDKShareLinkContent являются устаревшими. Попробуйте удалить их из использования.

+2

Получил, спасибо. –

+1

Как насчет обратного вызова автоматической инициализации? –

+3

Как FB SDK удается инициализировать себя «на запуск приложения» без необходимости добавлять что-либо в 'Application.onCreate()' ?? –

-7

Я была такая же Иссу и это, как я решить ее: Поместите эту строку кода в файле манифеста

<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 Благодаря

+10

, вы даже читаете bro? – Bawa

1

Так Вместо вызова устаревшие методы вы можете вызвать AppEventsLogger.activateApp(Application) внутри вашего класса приложения OnCreate()

public class MyApplication extends Application{ 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     AppEventsLogger.activateApp(MyApplication.this); 
    } 
} 
+0

'AppEventsLogger.activateApp()' также устарел. Этот ответ требует вмешательства модератора. –

+2

FYI Kid @NikhilWagh, я хочу сказать вам, что в настоящее время на сегодняшний день я использую последнюю версию SDK для сообществ «com.facebook.android:facebook-android-sdk:4.27.0», и она не устарела. –

+0

Согласно [this] (https://developers.facebook.com/docs/reference/androidsdk/current/facebook/com/facebook/appevents/appeventslogger.html/) 'public static void activateApp (контекст контекста)' устарел , Он предлагает использовать [this] (https://developers.facebook.com/docs/reference/androidsdk/current/facebook/com/facebook/appevents/appeventslogger.html/#activateapp-application-). Для этого я заменил 'MainActivity.this'' getApplication() '. –

3

FacebookSdk.sdkInitialize (getApplicationContext()); Этот метод устарел, поэтому просто удалите эту строку кода в своем классе. потому что согласно последнему Facebook, нам не нужно вручную инициализировать SDK, он сам инициализируется.

Смежные вопросы