Używam facebook-android-sdk-4.19.0 w Android Studio i postępowałem zgodnie z przewodnikiem szybkiego startu na Facebooku pod adresem https://developers.facebook.com/docs/android/getting-started (Kliknij przycisk Szybki start, aby zaloguj się za pomocą własnego konta na Facebooku). W przewodniku jest napisane, aby skopiować i wkleić następujący kod do fragmentu kodu, aby śledzić dzienniki aplikacji
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);
}
}
Jednak po skopiowaniu i wklejeniu kodu w Android Studio okazuje się, że wszystkie metody FacebookSdk.sdkInitialize () są przestarzałe. Dokumentacja tutaj https://developers.facebook.com/docs/reference/android/current/class/FacebookSdk/ nie mówi nic o tym, jakiej metody użyć do zainicjowania sdk zamiast sdkInitialize (). Jakiej metody mam użyć?
Odpowiedzi:
Z dokumentacji dotyczącej aktualizacji SDK:
Zobacz: https://developers.facebook.com/docs/android/upgrading-4x
AKTUALIZACJA
W SDK 4.22
title
,description
,caption
iimage
polaFBSDKShareLinkContent
są przestarzałe. Rozważ usunięcie ich z użytku.źródło
"on Application start"
bez potrzeby dodawania czegokolwiekApplication.onCreate()
?Ta metoda jest przestarzała, więc po prostu usuń ten wiersz kodu ze swojej klasy. ponieważ zgodnie z najnowszym Facebookiem nie musimy teraz ręcznie inicjować SDK, jest on inicjalizowany samodzielnie.
źródło
Więc zamiast wywoływać przestarzałe metody, możesz wywołać
AppEventsLogger.activateApp(Application)
metodę onCreate () klasy aplikacjiźródło
public static void activateApp(Context context)
jest przestarzałe. Sugeruje użycie tego . Za to otrzymujeMainActivity.this
sięgetApplication()
.MyApplication.this
jest również tym samymApplication
obiektem. Mogę zapytać, jaka jest potrzeba zastąpienia gogetApplication()
? Po prostu używamthis
(co jest również tym samym coMyApplication.this
) i otrzymałem jakoApplication
Moim wymaganiem było wyłączenie funkcji autoInit podczas uruchamiania aplikacji i zainicjowanie jej z metody onCreate w Activity. AutoInit przed uruchomieniem aplikacji powodowało, że moja aplikacja flutter potrzebowała czasu na uruchomienie przy wolnych połączeniach sieciowych.
Wyłącz funkcję AutoInit z manifestu
Zainicjuj zestaw SDK Fb w metodzie onCreate działania
źródło
FacebookSdk.sdkInitialize(getApplicationContext());
Nie ma potrzeby stosowania tej metody, jak mówi dokument Facebooka: Ta funkcja inicjuje pakiet SDK Facebooka jest wywoływana automatycznie podczas uruchamiania aplikacji, jeśli odpowiednie wpisy są wymienione w pliku AndroidManifest, takie jak identyfikator aplikacji Facebook. Automatyczne rejestrowanie zdarzeń z „activApp” można kontrolować za pomocą ustawienia manifestu „com.facebook.sdk.AutoLogAppEventsEnabled”.
źródło