"Une erreur interne s'est produite" avec l'intégration de Google Plus Login

j'essaie d'intégrer un Login Google plus dans mon application selon les instructions fournies par le lien suivant : https://developers.google.com/+/quickstart / android#install-sdk

je suis parfaitement toutes les instructions. Et quand j'exécute l'application échantillon sur un appareil réel fourni dans l'android-sdk et cliquez sur le signin bouton, il affiche un Toast message An internal error occurred

Ce que je fais mal?

42
demandé sur Geek 2013-04-02 15:27:09

20 réponses

cela peut se produire lorsque vous n'avez pas défini la signature pour L'ID du client dans votre projet de console API, ou si vous avez copié la mauvaise valeur de clé de keytool. Cela est documenté dans les étapes de l' guide de démarrage rapide sur les étapes 7, 8, 9, et 10.

31
répondu Vic Fryzel 2013-04-02 11:33:31

j'ai ce problème et même après avoir créé 10 ID de client différents avec SHA et le nom du paquet, ça ne marche pas... jusqu'à ce que je découvre que vous devez remplir le Consent screen.

selon la Console GoogleDevelopers -

l'écran de consentement sera affiché aux utilisateurs chaque fois que vous demandez l'accès à leurs données privées en utilisant votre ID client.

Consent screen

86
répondu mjosh 2014-03-19 12:18:50

j'ai résolu le problème en supprimant .setScopes("PLUS_LOGIN") dans le PlusClient.Constructeur.

16
répondu marcogramy 2013-10-17 09:19:58

j'ai eu cette erreur de message de toast dans mon application android:

An internal error occurred

Résumé:

en supposant que vous avez fait une erreur en configurant la négociation entre votre application android et le serveur API Android vous accordant l'accès. Très probablement causé par le fait que vous n'avez pas ajouté le nom du paquet ou l'empreinte SHA1 correcte. J'ai suivi ces étapes pour faire sauter la mauvaise configuration et le faire correctement.

étapes à suivre corrigé:

  1. allez sur votre console de l'api google et connectez-vous:https://code.google.com/apis/console

  2. cliquez sur l'onglet" Accès API".

  3. cliquez sur le bouton "Créer un autre ID client".

  4. choisir: bouton radio "application installée".

  5. choisir: bouton radio "Android".

  6. Entrez le nom du package de l' application android qui affiche l'erreur ci-dessus. Vous pouvez le trouver définies dans la partie supérieure de l' PlusSampleActivity.java fichier de code. Pour moi, c'est com.Google.Android.gms.échantillon.plus

  7. Acquérir votre empreinte SHA1 valeur:

    un. Utilisez la commande keytool -list -v -keystore /home/el/.android/debug.keystore. Entrez le mot de passe, Si vous ne l'avez jamais défini, le mot de passe par défaut est 'android'.

    B. L'empreinte de SHA1 est affichée à l'écran, copiez ça.

  8. Coller la valeur ci-dessus dans le "La signature de certificat d'empreintes digitales (SHA1):" de la boîte.

  9. cliquez sur le bouton "Créer l'ID du client".

  10. Lancez à nouveau votre application android, cliquez sur "Connexion".

Maintenant vous êtes présenté avec une activité à "S'inscrire à Google+ SDK avec Google".

10
répondu Eric Leschinski 2013-11-05 14:06:31

Dans mon cas, la solution était de fait définissez une adresse courriel dans l'écran de consentement. Tout d'abord, j'ai été un peu réticents à choisir mon adresse personnelle et pour une raison étrange, vous pouvez enregistrer le formulaire sans ce morceau de données sans erreur. Après avoir vérifié ce que d'autres ont suggéré, dès que j'ai défini mon adresse e-mail dans ce formulaire, il a commencé à fonctionner.

4
répondu Alex FJ 2014-02-10 11:34:15

j'ai cherché comment réparer cela depuis une journée avec plein de recherches sans chance finalement j'ai réussi pour résoudre ce problème avec l'approche suivante.

avant de commencer à résoudre ceci (au moins comment ti a fonctionné pour moi) je dois dire que tout sur le la documentation est correcte et vous n'avez pas à changer de ligne de code. Il ressemble plus à un bug dans le https://cloud.google.com/console console du nuage

premier assurez-vous que vous avez le bon SHA1 et le nom du paquet de votre projet tel que décrit dans les documents https://developers.google.com/+/quickstart / android

Or ce bug que j'ai remarqué (au moins pour moi) était que dans ma console cloud, le projet que j'ai créé était il y a longtemps avec l'ancienne interface et quelques mois, j'ai migré vers la nouvelle interface graphique.Une fois que vous aurez le nouveau look sur la console cloud, vous remarquerez que les nouveaux projets sont générés automatiquement projet id comme ceci atlante-ares-331 alors que les vieux projets ont une valeur entière longue comme id du projetqui n'est pas visible. Donc, si votre projet a été créé avec l'ancienne interface graphique et que vous venez de créer un nouvel identifiant client pour OAuth pour ce projet, vous obtiendrez le Toast "une erreur interne s'est produite" en essayant de vous connecter avec google.

comment réparer

  1. Accédez à votre console du nuage
  2. Faire un projet je suggérerais un nom comme oldprojectname-gplus
  3. dans la section API activer L'API Google+
  4. assurez-vous que aucun de vos projets a le même nom de paquet sur Client OAuth ID avec celle que vous allez utiliser maintenant sinon vous obtiendrez ErreurThis client ID is globally unique and is already in use.(vous devrez supprimer l'ancien identifiant de client D'OAuth avec le même nom de paquet que vous utiliserez maintenant).

  5. aller à Credentials Create New Identification du Client pour OAuth.

application Installée

Android

Saisissez le nom du paquet de votre projet et votre SHA1

3
répondu Thano 2014-04-14 16:12:05

ma solution au problème était la suivante.

j'ai fait tout ce que les autres ont recommandé et il n'y avait pas de faute de frappe concernant le nom du paquet et la touche SHA1. J'ai aussi essayé d'enlever la clé et de l'ajouter à nouveau, mais ça n'a pas aidé.

Ce qui n'aide est la suppression de la clé et de la création d'un project (at https://code.google.com/apis/console) et ensuite la création de L'ID du Client (avec package+sha1) à nouveau là. Après cela (5 secondes) tout a fonctionné sur mon appareil Android.

2
répondu Zsolt Safrany 2013-12-20 15:30:55

ce problème est lié aux permissions de la console api.

si vous utilisez une permission liée à SCOPE_PLUS_LOGIN, dans la console de l'api, vous devez créer deux clés, l'une pour L'identifiant du client, et l'autre pour la clé publique de l'api.

1
répondu Oscar Calderon 2014-05-19 05:40:16

dans mon cas, le problème est que j'ai changé le nom du paquet de l'application et que je ne l'ai pas mise à jour dans dev console.

1
répondu Ilya Gazman 2015-03-20 10:52:02

pour moi, c'est que j'essayais d'utiliser ma clé de production lors de son installation en utilisant ma clé de débogage. Assurez-vous d'utiliser le droit SHA1 de la bonne keystore.

0
répondu jcaruso 2013-12-04 15:58:40

je me suis tourné vers Google IO 2013, et j'ai changé l'initialisation de PlusClient, puis ça marche.

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
répondu Tushu 2013-12-12 03:13:26

remercie Thano pour la solution "Maintenant, ce bug que j'ai remarqué (du moins pour moi) était que dans ma console cloud, le projet que j'ai créé était il y a longtemps avec l'ancienne interface et il y a quelques mois j'ai migré vers la nouvelle interface graphique.Une fois que vous obtenez le nouveau look sur la console cloud, vous remarquerez que les nouveaux projets ont un ID de projet généré automatiquement comme ce atlantean-ares-331 alors que les anciens projets ont une longue valeur entière comme id de projet qui n'est pas visible. Donc, si votre projet a été créé avec L'ancienne GUI et vous vous venez de créer un nouveau client id pour OAuth pour ce projet, vous obtiendrez le Toast "une erreur interne s'est produite" tout en essayant de vous connecter avec google."

0
répondu psikario 2014-03-04 18:55:21

recréer le projet dans la Console Google a fonctionné pour moi après plusieurs autres tentatives:

pour une raison quelconque, mon projet n'avait pas D'ID de projet (ancienne console/nouvelle console?).

comme Thano (ci-dessus) l'a suggéré, j'ai créé un tout nouveau projet, j'ai créé des ID de Client, ... et puis dans travaillé. Merci pour les conseils!!!!

0
répondu user2996950 2014-03-05 05:14:04

N'oubliez pas d'utiliser le débug keystore intégré pour les tests. J'avais tout le reste qui fonctionnait correctement, mais j'avais mis mon empreinte SHA1 de keystore de production dans les justificatifs d'identité dans la Console de développeurs, ce qui a causé qu'il ne fonctionnait pas.

0
répondu MikkoP 2014-06-10 14:43:46

si vous faites face à cette erreur lorsque vous essayez d'exécuter l'application échantillon "ou" copiez le projet que vous avez créé dans une autre machine qui fonctionnait avec succès dans cette machine et donnant une telle erreur pop-up dans l'autre machine où vous essayez d'exécuter ,vous pouvez suivre la méthode ci-dessous et cela aidera.

si vous construisez l'application pour tester/déboguer le but alors,

1.Générer le nouveau SHA1 si vous copiez votre projet et l'exécutez sur une autre machine pour le paquet nom et chemin prévus pour keystore.

2.Changez le ClientId dans la console des développeurs pour SHA1 nouvellement généré et exécutez-le dans la nouvelle machine où vous avez copié le projet et en essayant de l'exécuter.

0
répondu ManishSB 2014-08-25 09:46:07

Le nom du paquet est souvent négligé. Je voudrais clarifier l'étape 6 par Eric Leschinski ci-dessus (ne peut pas commenter là): le paquet requis n'est pas le paquet d'une activité, plutôt le paquet du Manifeste de votre application.

Vous pouvez récupérer la valeur correcte de l'élément racine de AndroidManifest.xml:

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

dans cet exemple, définissez " com.paj.darkmoor " tout en créant L'ID du Client

0
répondu nikos.t 2014-12-13 16:15:41

j'ai eu le même problème quand J'ai utilisé SHA1 pour déboguer.keystore for debuging ensuite exporté mon application oubliant de générer SHA1 pour keystore que j'ai utilisé pour exporter mon application.

0
répondu makuno 2015-07-12 17:25:02

ça marche pour moi quand je connecte l'appareil et installe l'apk D'Android Studio. Mais il fonctionne maintenant pour moi quand je génère le .apk et l'installer à partir de dropbox.

-1
répondu Biranchi 2014-09-13 08:48:23

j'ai passé en revue toutes les réponses fournies ici et d'autres aussi. Dans mon cas, il s'agissait aussi du SHA-1. La raison pour laquelle J'ai eu le mauvais SHA-1 était ma commande d'exportation de clavier cert.

auparavant j'utilisais

C:\Users\mysuername\.android SHA 1 signature keytool -exportcert -alias androiddebugkey -keystore "keystorepath" -list -v

le problème était dans la variable androiddebugkey. Ici, vous devez donner le nom de la clé que vous utilisez pour signer l'application.

C:\Users\mysuername\.android SHA 1 signature keytool -exportcert -alias mykeyname -keystore "keystorepath" -list -v

Espérons que cela aide quelqu'un!

-1
répondu Hadi 2014-12-08 20:11:31

pour ajouter à cette longue liste de raisons, mon problème est que j'ai obtenu le debugkey à partir du fichier jks plutôt que de l'application.

C'est toujours quelque chose de petit.

-1
répondu user237462 2015-09-02 12:36:11