Ich verwende facebook-android-sdk-4.19.0 in Android Studio und habe die Facebook-Kurzanleitung unter https://developers.facebook.com/docs/android/getting-started befolgt (Klicken Sie auf die Schaltfläche Schnellstart, um Melden Sie sich mit Ihrem eigenen Facebook-Konto an. In der Anleitung wird empfohlen, den folgenden Code zu kopieren und in das Snippet einzufügen, um App-Protokolle zu verfolgen
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);
}
}
Wenn ich jedoch den Code in Android Studio kopiere, scheinen alle Methoden von FacebookSdk.sdkInitialize () veraltet zu sein. Die Dokumentation hier https://developers.facebook.com/docs/reference/android/current/class/FacebookSdk/ sagt nichts darüber aus, welche Methode zum Initialisieren des SDK anstelle von sdkInitialize () verwendet werden soll. Welche Methode soll ich verwenden?
Antworten:
Aus der Dokumentation zum Aktualisieren des SDK:
Siehe: https://developers.facebook.com/docs/android/upgrading-4x
AKTUALISIEREN
In SDK 4.22 die
title
,description
,caption
undimage
BereichFBSDKShareLinkContent
sind veraltet. Ziehen Sie in Betracht, sie aus der Verwendung zu entfernen.quelle
"on Application start"
ohne etwas hinzufügen zu müssenApplication.onCreate()
?Diese Methode ist veraltet. Löschen Sie einfach diese Codezeile in Ihrer Klasse. Da wir laut dem neuesten Facebook das SDK jetzt nicht mehr manuell initialisieren müssen, wird es von selbst initialisiert.
quelle
Anstatt die veralteten Methoden aufzurufen, können
AppEventsLogger.activateApp(Application)
Sie sie in onCreate () Ihrer Anwendungsklasse aufrufen.quelle
public static void activateApp(Context context)
ist veraltet. Es wird empfohlen, dies zu verwenden . Dafür habe ich ersetztMainActivity.this
mitgetApplication()
.MyApplication.this
ist auch das gleicheApplication
Objekt. Darf ich fragen, durch was es ersetzt werden mussgetApplication()
? Ich benutze einfachthis
(was auch das gleiche ist wieMyApplication.this
) und es wird empfangen alsApplication
Meine Anforderung bestand darin, autoInit beim Start der App zu deaktivieren und über die onCreate-Methode von Activity zu initialisieren. AutoInit vor dem Start der App führte dazu, dass meine Flatter-App einige Zeit brauchte, um bei langsamen Netzwerkverbindungen zu starten.
Deaktivieren Sie AutoInit aus dem Manifest
Initialisieren Sie Fb sdk in der onCreate-Methode der Aktivität
quelle
FacebookSdk.sdkInitialize(getApplicationContext());
Diese Methode ist nicht erforderlich, wie das Facebook-Dokument sagt: Diese Funktion initialisiert das Facebook SDK und wird beim Start der App automatisch aufgerufen, wenn im AndroidManifest die richtigen Einträge aufgeführt sind, z. B. die Facebook-App-ID. Die automatische Ereignisprotokollierung von 'activApp' kann über die Manifesteinstellung 'com.facebook.sdk.AutoLogAppEventsEnabled' gesteuert werden.
quelle