it-swarm.com.de

"Bei der Integration von Google Plus Login ist ein interner Fehler aufgetreten."

Ich versuche, ein Google Plus Login in meine Anwendung gemäß den Anweisungen unter folgendem Link zu integrieren: https://developers.google.com/+/quickstart/Android#install-sdk

Ich befolge alle Anweisungen perfekt. Wenn ich die Beispielanwendung auf einem echten Gerät aus dem Android-SDK-Gerät ausführe und auf die Schaltfläche signin klicke, wird eine Toast-Meldung angezeigt, die An internal error occurred

Was mache ich falsch?

42

Dies kann passieren, wenn Sie in Ihrem API-Konsolenprojekt keine Signatur für die Client-ID festgelegt haben oder wenn Sie den falschen Schlüsselwert aus Keytool kopiert haben. Dies wird in den Schritten der Kurzanleitung in den Schritten 7, 8, 9 und 10 dokumentiert.

31
Vic Fryzel

Ich habe dieses Problem und selbst nachdem ich 10 verschiedene Client-IDs mit verschiedenen SHA- und Paketnamen erstellt habe, funktioniert es nicht ... bis ich herausfand, dass Sie den Consent screen ausfüllen müssen.

Laut GoogleDevelopers Console -

Der Einwilligungsbildschirm wird Benutzern angezeigt, wenn Sie den Zugriff anfordern zu ihren privaten Daten mit Ihrer Kunden-ID.

Consent screen

86
mjosh

Ich habe das Problem gelöst, indem Sie .setScopes("PLUS_LOGIN") im PlusClient.Builder entfernt haben.

16
marcogramy

Ich habe diesen Toast-Nachrichtenfehler in meiner Android-Anwendung erhalten:

An internal error occurred

Zusammenfassung:

Angenommen, Sie haben einen Fehler bei der Konfiguration der Aushandlung zwischen Ihrer Android-App und dem Android-API-Server gemacht, der Ihnen Zugriff gewährt. Wahrscheinlich weil Sie nicht den korrekten Paketnamen oder den richtigen SHA1-Fingerabdruck hinzugefügt haben. Ich habe diese Schritte befolgt, um die falsche Konfiguration auszublasen und richtig zu machen. 

Schritte zur Behebung:

  1. Rufen Sie Ihre Google API-Konsole auf und melden Sie sich an: https://code.google.com/apis/console

  2. Klicken Sie auf die Registerkarte "API-Zugriff".

  3. Klicken Sie auf die Schaltfläche: "Erstellen Sie eine andere Client-ID".

  4. Wählen Sie: Optionsfeld "Installierte Anwendung".

  5. Wählen Sie das Optionsfeld "Android".

  6. Geben Sie den Paketnamen der Android-App ein, die den obigen Fehler anzeigt. Sie finden es definiert oben in der PlusSampleActivity.Java-Codedatei. Für mich ist es com.google.Android.gms.samples.plus

  7. Erwerben Sie Ihren SHA1-Fingerabdruckwert:

    ein. Verwenden Sie den Befehl keytool -list -v -keystore /home/el/.Android/debug.keystore. Geben Sie das Kennwort ein. Wenn Sie es niemals festlegen, lautet das Standardkennwort 'Android'. 

    b. Der SHA1-Fingerabdruck wird auf dem Bildschirm angezeigt. Kopieren Sie diesen.

  8. Fügen Sie den obigen Wert in das Feld "Signaturzertifikat Fingerabdruck (SHA1):" ein.

  9. Klicken Sie auf die Schaltfläche: "Client-ID erstellen".

  10. Starten Sie Ihre Android-Anwendung erneut und klicken Sie auf "Anmelden".

Jetzt wird eine Aktivität zum "Anmelden bei Google+ SDK bei Google" angezeigt.

10
Eric Leschinski

In meinem Fall bestand die Lösung darin, eine E-Mail-Adresse im Einwilligungsbildschirm festzulegen. Zunächst wollte ich meine persönliche Adresse nur ungern auswählen, und aus einem merkwürdigen Grund können Sie das Formular ohne speichern diese Daten ohne Fehler. Nachdem ich die Vorschläge anderer geprüft hatte, begann ich mit dem Einrichten meiner E-Mail-Adresse in diesem Formular.

4
Alex FJ

Ich habe gesucht, wie ich das für einen Tag mit voller Forschung ohne Erfolg beheben kann. Schließlich gelang es mir, dieses Problem mit dem folgenden Ansatz zu lösen.

Bevor ich damit anfange, das Problem zu lösen (zumindest wie ti für mich gearbeitet hat), muss ich sagen, dass alles in der -Dokumentation korrekt ist und Sie keine Codezeilen oder so ändern müssen eines Fehlers in der https://cloud.google.com/console Cloud-Konsole 

Stellen Sie zunächst sicher, dass Sie den korrekten SHA1-Namen und den Namen Ihres Projekts erhalten haben, wie in den Dokumenten beschrieben https://developers.google.com/+/quickstart/Android

Nun, dieser Fehler, den ich (zumindest für mich) bemerkte, war, dass das Projekt, das ich Erstellt hatte, in meiner Cloud-Konsole vor langer Zeit mit der alten Benutzeroberfläche und vor einigen Monaten auf die neue GUI umgestellt wurde. Sobald Sie das Neue erhalten haben Auf der Cloud-Konsole werden Sie feststellen, dass neue Projekte eine automatisch generierte project id wie hier atlantean-ares-331 haben, während alte Projekte einen langen ganzzahligen Wert als project id _ ​​erhalten haben.was nicht sichtbar ist. Wenn Ihr Projekt also mit der alten GUI erstellt wurde und Sie gerade eine neue Client-ID für OAuth für dieses Projekt erstellt haben, wird der Toast "Ein interner Fehler ist aufgetreten" angezeigt, während Sie versuchen, sich bei Google anzumelden.

Wie repariert man

  1. Gehen Sie zu Ihrer Cloud-Konsole 
  2. Erstellen Sie ein new - Projekt. Ich würde einen Namen wie Oldprojectname-gplus vorschlagen
  3. Aktivieren Sie im Abschnitt "APIs" die Google+ API
  4. Stellen Sie sicher, dass für keines Ihrer Projekte derselbe Paketname auf OAuth-Client-ID mit der jetzt verwendeten ID angegeben ist. Andernfalls erhalten Sie ErrorThis client ID is globally unique and is already in use. (Sie müssen den alten OAuth-Client löschen ID mit dem gleichen Paketnamen, den Sie jetzt verwenden werden).

  5. Wechseln Sie zu Anmeldeinformationen. Erstellen Sie eine neue Client-ID für OAuth.

Installierte Anwendung 

Android

Geben Sie den Paketnamen Ihres Projekts und Ihren SHA1 ein

Erledigt

3
Thano

Meine Lösung für das Problem war folgende. 

Ich tat alles, was andere empfahlen, und es gab keinen Tippfehler in Bezug auf den Paketnamen und den SHA1-Schlüssel. Ich habe auch versucht, den Schlüssel zu entfernen und ihn erneut hinzuzufügen, aber er half nicht.

Was geholfen hat, ist das Entfernen des Schlüssels und das Erstellen eines new - Projekts (unter https://code.google.com/apis/console ) und das Erstellen der Client-ID (mit Paket + sha1) dort . Danach (5 Sekunden) funktionierte alles auf meinem Android-Gerät.

2
Zsolt Safrany

In meinem Fall bestand das Problem darin, dass ich den Paketnamen der App geändert und die Dev Console nicht aktualisiert habe.

1
Ilya Gazman

Dieses Problem hängt mit den Berechtigungen der API-Konsole zusammen.

wenn Sie eine Berechtigung verwenden, die sich auf SCOPE_PLUS_LOGIN bezieht, müssen Sie in der API-Konsole zwei Schlüssel erstellen, einen für die OAuth-Client-ID und einen für den öffentlichen API-Schlüssel.

1
Oscar Calderon

Ich hatte das gleiche Problem, wenn ich SHA1 für debug.keystore zum Debuggen verwende, dann meine Anwendung exportierte und vergaß, SHA1 für den Keystore zu generieren, mit dem ich meine Anwendung exportierte. 

0
makuno

Denken Sie daran, zum Testen den integrierten Debug-Keystore zu verwenden. Ich hatte alles andere richtig funktioniert, aber ich hatte meinen Fingerabdruck für den Produktions-Keystore SHA1 in den Anmeldeinformationen der Entwicklerkonsole festgelegt, was dazu führte, dass er nicht funktionierte.

0
MikkoP

Was oft übersehen wird, ist der Paketname. Ich möchte den Schritt 6 von Eric Leschinski oben erläutern (kann dort nicht kommentieren): Das erforderliche Paket ist nicht das Paket einer Aktivität, sondern das Paket des Manifests Ihrer App.

Sie können den korrekten Wert vom Stammelement von AndroidManifest.xml abrufen:

<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.ntk.darkmoor"
    Android:versionCode="1"
    Android:versionName="1.0" >

Definieren Sie in diesem Beispiel "com.ntk.darkmoor" beim Erstellen der Client-ID

0
nikos.t

Ich drehte mich zu Google IO 2013 um und änderte die Initialisierung von PlusClient.

public static final String AUTH_SCOPES[] = {
    Scopes.PLUS_LOGIN,
    "https://www.googleapis.com/auth/userinfo.email",
    "https://www.googleapis.com/auth/developerssite" };

mPlusClient = new PlusClient.Builder(this, this, this)
    .setScopes(AUTH_SCOPES)
    .build();
0
Tushu

Das erneute Erstellen des Projekts in der Google Console hat nach mehreren weiteren Versuchen für mich funktioniert:

Aus irgendeinem Grund hatte mein Projekt keine Projekt-ID (alte Konsole/neue Konsole?).

Wie von Thano (oben) vorgeschlagen, habe ich ein brandneues Projekt erstellt, Client-IDs erstellt, ... und dann gearbeitet. Danke für den Hinweis!!

0
user2996950

Für mich war es der Versuch, meinen Produktionsschlüssel zu verwenden, wenn er mit meinem Debug-Schlüssel installiert wurde. Stellen Sie sicher, dass Sie den richtigen SHA1 vom rechten Keystore verwenden.

0
jcaruso

Danke Thano für die Lösung "Nun, dieser Fehler, den ich (zumindest für mich) bemerkte, war, dass das Projekt, das ich erstellt habe, vor langer Zeit mit der alten Benutzeroberfläche erstellt wurde und vor einigen Monaten zur neuen GUI migriert wurde Sobald Sie das neue Erscheinungsbild der Cloud-Konsole erhalten, werden Sie feststellen, dass neue Projekte eine automatisch generierte Projekt-ID wie diese atlantean-ares-331 haben, während alte Projekte einen langen ganzzahligen Wert als Projekt-ID erhielten, der nicht sichtbar ist mit der alten GUI erstellt und Sie haben gerade eine neue Client-ID für OAuth für dieses Projekt erstellt. Sie erhalten den Toast "Ein interner Fehler ist aufgetreten", während Sie sich bei Google anmelden. "

0
psikario

Wenn Sie mit diesem Fehler konfrontiert werden, wenn Sie versuchen, die Beispielanwendung auszuführen, oder kopieren Sie das Projekt, das Sie auf einem anderen Computer erstellt haben, der erfolgreich ausgeführt wurde. Sie können der untenstehenden Methode folgen und es wird helfen.

Wenn Sie die App zum Testen/Debuggen erstellen,

1.Erstellen Sie den neuen SHA1, wenn Sie Ihr Projekt kopieren und auf einem anderen Computer ausführen, um den Paketnamen und den Pfad für den Keystore anzugeben.

2. Ändern Sie die ClientId in der Entwicklerkonsole für neu generiertes SHA1, und führen Sie sie auf dem neuen Computer aus, auf dem Sie das Projekt kopiert haben und versuchen, es auszuführen.

0
ManishSB