usingOAuth2 veraltet?

8

Ich habe an einer Android App gearbeitet, die Google Drive API verwendet. Es wurde ursprünglich aus dem Quickstart-Beispiel hier erstellt. Die vereinfachte Abfolge von API-Aufrufen (mit korrekter Fehlerbehandlung, die hier nicht gezeigt wird) ist:

%Vor%

Es hat gut funktioniert und ich bin gerade dabei, meine App zu veröffentlichen. Aber plötzlich, nach Drive API Update, bekomme ich eine Warnung

  

Die Methode mit OAuth2 (Context, String, String ...) vom Typ   GoogleAccountCredential ist veraltet

Was passiert? Gibt es eine andere Möglichkeit, Anmeldeinformationen zu erhalten? Gibt es eine bearbeitete Version des Quickstart-Beispiels , das überall verfügbar ist?

Vielen Dank im Voraus für eine Klarstellung. Sean

    
seanpj 02.07.2013, 15:37
quelle

2 Antworten

28

Also, die einfache Antwort auf meine eigene Frage ist

ersetzen:

  

GoogleAccountCredential crd =   GoogleAccountCredential.usingOAuth2 (dies, DriveScopes.DRIVE_FILE);

mit

  

GoogleAccountCredential crd =   GoogleAccountCredential.usingOAuth2 (diese   Arrays.asList (DriveScopes.DRIVE_FILE));

    
seanpj 04.07.2013, 14:43
quelle
3

Zur Vollständigkeit

Ich nehme an, Sie haben diese Ausnahme erhalten, indem Sie dem Codebeispiel aus Google Drive QuickStart folgen. Wenn dies der Fall ist, werden Sie vielleicht die folgenden Dinge finden, die ich ändern musste.

Google Play Services Lib (NB. Siehe Kommentar unten!)

Die Dokumentation verwendet den alten Weg, Bibliotheken zu einem Android-Projekt hinzuzufügen. Dies wird fehlschlagen, wenn es mit dem letzten ADT ausgeführt wird. Sie können das Gerät kompilieren und auf das Gerät / den Emulator hochladen, aber bei der Ausführung erhalten Sie einen NoClassDefFoundError.

%Vor%

Um das Problem zu beheben, kopieren Sie bitte die Datei google-play-services.jar in den Ordner libs .

Fehlendes Meta-Tag

Bis zum nächsten Fehler. Ich erhielt dann ein IllegalStateException mit den Anweisungen zum Hinzufügen eines Meta-Tags im Manifest, das die Version von google-play-services enthält.

Also innerhalb des Application-Tags des Manifests add:

%Vor%

Fügen Sie in einer der Ressourcendateien ( res/values/a-file-here.xml ) Folgendes hinzu:

%Vor%

In meinem Fall stimmte die lib mit dieser Version überein. Wenn Sie hier die falsche Version eingeben, erhalten Sie eine Fehlermeldung mit der richtigen Version. Überprüfen Sie daher die Ausgabe.

Berechtigung verweigert

Endlich habe ich eine Aufforderung für oauth in der App bekommen, nur um herauszufinden, dass die Beispiel-App noch eine Erlaubnis fehlt. Der Fehler für die Referenz:

%Vor%

Neben den im Beispiel aufgeführten Berechtigungen:

%Vor%

Fügen Sie auch die Berechtigung WRITE_EXTERNAL_STORAGE in Ihrem Manifest hinzu:

%Vor%

Weitere Ressourcen

Wenn Sie eine com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAuthIOException -Ausnahme mit der Beschreibung " Unknown " in der Hauptursache erhalten, sollten Sie die Einstellungen in der Google API-Konsole überprüfen . Ich habe diesen Fehler bei einem Paketfehler erhalten.

Weitere interessante Links sind die oauth2-Dokumentation und die google api playground .

    
hcpl 11.12.2013 10:53
quelle