FAQs und Problembehebung zum Facebook-Android-SDK

FAQs

Du kannst für Android 11 den folgenden queries-Block in die Datei AndroidMainfest.xml des Projekts einfügen, um das Problem zu beheben:

<manifest package="com.example.app"> <queries> <provider android:authorities="com.facebook.katana.provider.PlatformProvider" /> </queries> ... </manifest>

Du kannst eine Facebook-App-ID in mehreren Android-Apps verwenden. Verwende einfach dieselbe App-ID in einer anderen App für Login, Teilen usw.

Für Deep Linking und zum Öffnen deiner App über Benachrichtigungen und auf andere Arten wird nur eine einzelne Kombination aus Paketname/Klassenname unterstützt.

Informationen zur Unterstützung von Deep Linking für mehrere Apps findest du unter App-Links.

Du kannst Strings im Facebook-SDK für Android überschreiben, indem du eine Übersetzung in deiner eigenen strings.xml-Datei für die gewünschte Ländereinstellung bereitstellst.

Die Datei strings.xml im Verzeichnis facebook/res/values/ enthält alle vom SDK verwendeten Strings. Der Name der String-Ressourcen sollte problemlos verständlich sein.

Weitere Informationen dazu findest du im Android Developer's Guide: Localizing with Resources.

Frühere Versionen des SDK kannst du unter SDK-Downloads herunterladen.

Jede Version des Facebook-SDK für Android mit dem nativen Dialog „Teilen“ umfasst auch eine APK-Datei für die Facebook-App.

Diese APK-Datei war bis zu Version 3.14.1 im SDK-Download enthalten. Bei späteren Versionen muss sie separat heruntergeladen werden. Du findest die APK-Dateien auf unserer Downloads-Seite.

Installiere die Facebook-APK-Datei einfach in deinem Android-Emulator oder -Gerät und teste den nativen Dialog „Teilen“ in deiner App.

Normalerweise können Android-Bibliotheken anhand von BuildConfig.DEBUG bestimmen, ob sich die App im Debug-Modus befindet. Aufgrund eines Fehlers in Gradle werden Android-Bibliotheken allerdings immer mit DEBUG auf „false“ erstellt. Als Umgehungslösung kannst du mit der FacebookSdk.setIsDebugEnabled(boolean)-Methode den Debug-Modus direkt von der App festlegen. So wird die Debug-Protokollierung mit dem SDK aktiviert.

Du kannst auch Protokollierungsverhalten mit FacebookSdk.addLoggingBehavior(LogginBehavior) festlegen, um die Protokollierung für verschiedene Nachrichtenkategorien zu aktivieren. Mehr darüber erfährst du unter Android-SDK-Referenz, LoggingBehavior.

Der Dialog „Teilen“ tätigt bei einer Nutzerhandlung Rückrufe an onSuccess und onCancel.

  • onSuccess, wenn der Nutzer erfolgreich Inhalte teilt. Des Weiteren gibt es auch eine „postId“ in der Sharer.Result-Klasse, wenn der Nutzer der App publish_actions-Berechtigungen erteilt hat. Wenn dieser Nutzer sich nicht mit Facebook Login angemeldet hat, wird diese Methode auch aufgerufen, wenn er auf Abbrechen klickt.
  • onCancel, wenn jemand auf den X-Button des Dialogs „Teilen“ klickt oder wenn ein über Facebook Login angemeldeter Nutzer auf Abbrechen klickt.

Problembehebung

Wenn du Veröffentlichungsberechtigungen anfragst, kann einer der folgenden Fehler angezeigt werden:

  • „Sitzung: Es wurde versucht, neue Berechtigungen für eine Sitzung mit einer ausstehenden Anfrage anzufragen“ oder
  • „Es wurde versucht, während einer ausstehenden Anfrage eine Autorisierung vorzunehmen“

Diese Fehlermeldung bedeutet, dass deine App versucht, neue Berechtigungen anzufragen, bevor die letzte Anfrage abgeschlossen wurde. Alle Berechtigungsanfragen sind asynchron und du kannst erst dann neue Berechtigungen anfragen, wenn die letzte Anfrage abgeschlossen wurde.

In unseren mit dem SDK bereitgestellten Beispiel-Apps, wie Scrumptious oder Hello Facebook, kannst du sehen, wie du neue Berechtigungen in mehreren Schritten anfragst.

Wenn keine Fehler in den Logs aufgezeichnet wurden, ist die wahrscheinlichste Ursache, dass die Anfrage nie ausgeführt wurde. Rufe die „executeAsync“-Methode auf, um die „GraphRequest“ auszuführen.

Für den Login oder die Nutzung der nativen „Teilen“-Dialoge musst du Facebook über den Schlüssel informieren, mit dem du deine Apps signierst.

Das wird als Key-Hash bezeichnet, ein SHA-1-Hash des Schlüssels, mit dem du deine App signiert hast. Normalerweise werden mindestens zwei verschiedene Schlüssel verwendet: einer für Entwicklung und Debugging und einer für Veröffentlichung. Achte also darauf, beide Werte auf der Einstellungsseite deiner App hinzuzufügen.

Weitere Informationen findest du unter Erste Schritte mit Android-SDK – Erstellen eines Key-Hash für Entwicklung.

Diese sind meistens darauf zurückzuführen, dass du keinen ContentProvider in AndroidManifest.xml eingerichtet hast. Achte darauf, dies der Datei AndroidManifest.xml mit deiner App-ID hinzuzufügen. Mehr darüber erfährst du in Teilen unter Android – Voraussetzungen.