Neue Facebook-API 3.0. und ActionBarSherlock-Kompatibilität
Bin ich beim Lesen facebook Android 3.0-API-Dokumente, und ich verstehe nicht, was bedeutet session zu tun hat, mit hintergrund-Aktivitäten. In allen Beispielen, die ich bin soll verlängern "FacebookFragment". Naja, das wäre schön, wenn meine ganze app ist nicht die Erweiterung "SherlockFragment", so dass ich nicht sehen, die Erweiterung FacebookFragment als option.
Wenn ich den code aus SessionLoginExample, und legte meine AppID in Zeichenfolgen in der gleichen Zeichenfolge wie facebook funktioniert, bekomme ich das:
Fehler
10-22 17:04:26.464: E/AndroidRuntime(5491): FATAL EXCEPTION: main
10-22 17:04:26.464: E/AndroidRuntime(5491): java.lang.RuntimeException: Unable to start activity ComponentInfo{nl.specsavers.moodspecs/nl.specsavers.moodspecs.LauncherActivity}: java.lang.NullPointerException: Argument applicationId cannot be null
Ich versuche, die anfängliche überprüfen, ob die app installiert wird oder nicht, und wenn session vorhanden ist oder nicht.
Settings.addLoggingBehavior(LoggingBehaviors.INCLUDE_ACCESS_TOKENS);
Session session = Session.getActiveSession();
if (session == null) {
if (savedInstanceState != null) {
session = Session.restoreSession(this, null, statusCallback, savedInstanceState);
}
if (session == null) {
session = new Session(this);
}
Session.setActiveSession(session);
if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED)) {
session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback));
}
}
Ich brauche, um irgendwie meine App-ID irgendwo, dass es eigentlich OK, aber ich kann nicht finden, wo Sie gestellt.
Ich muss wissen, Ob ich vermeiden kann, erweitern FacebookFragment ich als SherlockFragment.
Tnx.
InformationsquelleAutor der Frage Balkyto | 2012-10-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
FacebookFragment ist nicht öffentlich und ist nicht vorgesehen für die Verwendung durch Anwendungen.
Den Proben tun Sie meist FacebookActivity obwohl, und ja-Sie tun nicht verlängern müssen FacebookActivity. Wie Sie erwähnen, SessionLoginSample veranschaulicht dies, und wenn Sie nicht mit FacebookActivity sollten Sie Griff Sitzung Serialisierung und überschreiben/vorwärts onActivityResult wie dort abgebildet.
Sagte, es klingt wie das Hauptproblem zu treffen ist, um die Einstellung der applicationId. Sie können applicationId im code oder meta-Daten.
In code:
Setzen Sie im code definieren Sie eine String-Konstante MY_APP_ID, enthält Ihre app-id und ersetzen Sie die Zeile:
mit:
In Metadaten:
Um es meta-Daten, fügen Sie Folgendes zu Ihrer AndroidManifest.xml innerhalb des application-tag, aber außerhalb jeglicher Aktivität tags:
Dann, in values/strings.xml fügen Sie einen Wert für app_id, hat Sie Ihre app id:
InformationsquelleAutor der Antwort rightparen
Müssen Sie nicht Erben nichts, wenn Sie nicht bieten eine app_id durch code, müssen Sie es in Ihre Anwendung Metadaten (und in Ihrer strings.xml). Sehen https://developers.facebook.com/docs/reference/android/3.0/Session#APPLICATION_ID_PROPERTY
In Ihrem AndroidManifest.xml Sie müssen hinzufügen:
Und fügen Sie dann app_id als string in Ihre string.xml.
InformationsquelleAutor der Antwort Ming Li