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
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));
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.
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
.
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:
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.
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% 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 .
Tags und Links android google-drive-sdk oauth-2.0