web-dev-qa-db-fra.com

Échec d'initialisation de GoogleService

J'utilise Google Maps dans mon application Android. J'ai créé la clé et ajouté les autorisations nécessaires dans le fichier manifeste. Mais bientôt, je lance l'application et je reçois ce message dans le débogueur:

Échec d'initialisation de GoogleService, état: 10, manquant. Attendu ressource: 'R.string.google_app_id' pour l'initialisation des services Google. Les causes possibles sont google-services.json ou com.google.gms.google-services gradle plugin.

Je ne sais pas ce qui ne va pas. La carte fonctionne bien et je peux l'utiliser sans aucun problème. Mon fichier de classement a cette entrée:

compiler 'com.google.Android.gms: play-services: 8.4.0'

De quoi se plaint-il et comment puis-je l'atténuer?

109
Zach

Vous devez placer le fichier de configuration (google-services.json) généré par developer.google.com , comme indiqué à la 2ème étape de la documentation officielle ici

Le processus est simple

  1. Vous pouvez sélectionner votre projet ou en créer un nouveau.
  2. Ensuite, après avoir sélectionné les services souhaités (dans ce cas, le service de cartes), vous pouvez générer le fichier de configuration.

    Pour les personnes ayant migré vers les projets Firebase, elles peuvent obtenir la même chose en accédant à Console Firebase , en sélectionnant votre projet et dans les paramètres vous trouverez le fichier de configuration.

  3. Ensuite, comme indiqué à l'étape 3 de la documentation officielle ici

    Copiez le fichier google-services.json que vous venez de télécharger dans le répertoire app/ou mobile/de votre Android

P.S: Pour les personnes qui votent contre cette réponse, veuillez laisser un commentaire expliquant pourquoi vous refusez de voter.

36
Nishant.

[De Product Manager @ Google]

Vous pouvez résoudre ce problème en téléchargeant et en copiant le fichier google-services.json pour votre application Android en procédant comme suit:

  • Sélectionnez le nom de votre application/projet et votre nom de fichier Android à partir de ce lien et cliquez sur Continue to Choose and configure services.
  • Cliquez sur Continue to Generate Configuration files.
  • Téléchargez google-services.json et copiez le fichier dans le répertoire de modules app/ ou mobile/ de votre projet Android.

Si vous avez déjà importé votre projet Google dans Firebase, vous pouvez obtenir le fichier google-services.json mis à jour à partir de Console Firebase sous Paramètres du projet.

NE PAS COPIER le PROJECT_NUMBER comme suggéré par l'une des autres réponses car le google_app_id fait référence à votre application dans un projet et non au projet lui-même.

52
Sriram

Dans mon cas, cette erreur était due au fait que le plug-in de Google Services pour Gradle et la bibliothèque de Play Services étaient des versions incompatibles. Instructions pour les versions compatibles:

1) Ajoutez la dépendance à votre build.gradle au niveau du projet:

classpath 'com.google.gms:google-services:1.5.0-beta2'

2) Ajoutez le plugin à votre build.gradle au niveau de l'application:

apply plugin: 'com.google.gms.google-services'

3) Si vous utilisez Android Studio, il s'agit de la chaîne à ajouter à la section de dépendance du fichier build.gradle de votre application:

dependencies {
  compile "com.google.Android.gms:play-services:8.3.0"
}

Source: https://developers.google.com/cloud-messaging/Android/client

10
13rac1

J'ai rencontré le même problème et je l'ai résolu conformément à la solution officielle .

Voici les étapes:

  1. récupérez le fichier de configuration google-services.json à partir de this link .

  2. Copiez le fichier google-services.json que vous venez de télécharger dans le répertoire app/ou mobile/de votre projet Android Studio.

  3. Ajoutez la dépendance à votre build.gradle au niveau du projet:

    classpath 'com.google.gms:google-services:1.5.0-beta2'
    
  4. Ajoutez le plugin à votre build.gradle au niveau de l'application:

    apply plugin: 'com.google.gms.google-services'
    
  5. Ajoutez cette dépendance à votre build.gradle au niveau de l'application:

    dependencies {
        compile "com.google.Android.gms:play-services:8.3.0"
    }
    
3
Will

Pour Xamarin/Visual Studio Mac, je devais ajouter cela au bas de mon fichier Droid.csproj.

<Target Name="ProcessGoogleServicesJson" Condition=" '@(GoogleServicesJson)' != '' AND '$(AndroidApplication)' == 'True' AND '$(DesignTimeBuild)' != 'True'" BeforeTargets="$(ProcessGoogleServicesJsonBeforeTargets)" AfterTargets="$(ProcessGoogleServicesJsonAfterTargets)">
<Message Text="Using ProcessGoogleServicesJson override" Importance="high" />
<ProcessGoogleServicesJson GoogleServicesJsons="@(GoogleServicesJson)" IntermediateOutputPath="$(IntermediateOutputPath)" MonoAndroidResDirIntermediate="$(MonoAndroidResDirIntermediate)" AndroidPackageName="$(_AndroidPackage)">
    <Output ItemName="_AndroidResourceDest" TaskParameter="GoogleServicesGeneratedResources" />
    <Output ItemName="FileWrites" TaskParameter="GoogleServicesGeneratedResources" />
</ProcessGoogleServicesJson>
<ItemGroup>
    <FileWrites Include="$(IntermediateOutputPath)\ProcessGoogleServicesJson.stamp" />
</ItemGroup>

https://github.com/xamarin/GooglePlayServicesComponents/issues/64

1
stepheaw

Cela m’arrive aussi à moi. Dans mon cas, c’est parce qu’Android Studio a tenté d’insérer du code dans mon activité principale. Supprimer le code corrige l'erreur

Le code inséré concerne l’indexation des applications:

https://developers.google.com/app-indexing/Android/publish

0
Superbiji

Pour ceux qui rencontrent ce problème même après avoir correctement configuré les services de lecture et placé le fichier google-services.json dans le dossier project/app, la solution actuelle consiste à: 

Build > Rebuild Project

Peut-être en raison du fait que les chaînes du fichier json ne sont pas intégrées aux ressources compilées jusqu'à ce qu'une reconstruction complète soit effectuée.

0
anandbibek

Un quick fix que j'ai utilisé est de désactiver la signature. Si vous ne souhaitez pas créer de code de production, vous pouvez définir votre variante de construction sur debug, localOldDebug ou localDebug.

Cliquez sur Variantes de construction en bas à gauche dans Android Studio.

comment-désactiver-généré-signé-apk-Android-studio

0
Dudas

Vous pouvez modifier les versionCode et versionName de votre application dans votre fichier Gradle.

0
F. Milliard

J'ai eu le même problème à l'époque. A été capable de le résoudre en utilisant uniquement la bibliothèque de services de jeu nécessaire, qui dans mon cas, GCM.

Au lieu de com.google.Android.gms:play-services:8.4.0, j'utilise com.google.Android.gms:play-services-gcm:8.4.0. Voir ici pour plus d’informations; cela résout également le problème multidex.

Ensuite, j'ai appliqué les approches @Radix et @ Alexander pour supprimer le message que GCM a été généré dans le logcat concernant le google-services.json.

0
SanicBoom