web-dev-qa-db-fra.com

Clé/clé actuelle manquante avec Google Services 3.0.0

Depuis que j'ai mis à niveau le projet avec la dernière version de Google Services et bibliothèques (9.0.0), j'ai ce problème étrange:

 Error build

Console de grade:

:app:processDebugGoogleServices
Parsing json file: /Users/cyrilmorales/Documents/Projects/mobilemeans-punainenristi/app/google-services.json
:app:processDebugGoogleServices FAILED
Error:Execution failed for task ':app:processDebugGoogleServices'.
> Missing api_key/current_key object
Information:BUILD FAILED

build.gradle (racine):

dependencies {
    classpath 'com.Android.tools.build:gradle:2.2.0-alpha1'
    classpath 'com.google.gms:google-services:3.0.0'
}

build.gradle (app):

dependencies {
    ....
    compile 'com.google.Android.gms:play-services-analytics:9.0.0'
    compile 'com.google.Android.gms:play-services-gcm:9.0.0'
    compile 'com.google.Android.gms:play-services-maps:9.0.0'
    compile 'com.google.Android.gms:play-services-location:9.0.0'
    ...
}
apply plugin: 'com.google.gms.google-services'

Cependant, cela fonctionne bien avec les bibliothèques de services de lecture dans 8.4.0 et google-services 2.1.0

Avez-vous une idée de la solution?

155
palmsnipe

Générez un nouveau fichier de configuration (google-services.json) à partir de: https://developers.google.com/cloud-messaging/Android/client#get-config

Nouveau fichier de configuration avec "api_key": [ { "current_key": XXX } ] dans la section client

Update: ou service activé manuellement dans la console de développement et générer la clé.

158
Jozka Jozin

L'ajout d'une valeur de clé actuelle vide dans le fichier google-services.json a résolu ce problème pour moi. 

"api_key": [{ "current_key": "" }]

88
Ajax -the Max

Oui, comme pour la première fois avec Firebase, je suis comme ça. Cliquez sur le menu de votre application, puis cliquez sur "Gérer".

 enter image description here

vous pouvez télécharger à nouveau google-services.json.

 enter image description here

34
Htoo Aung Hlaing

Pour tous ceux qui ont ce problème, pour l'instant, vous devez ajouter un service à votre application à l'adresse https://developers.google.com/cloud-messaging/Android/client#get-config .

Dans mon cas, j'ai ajouté admob (j'ai déjà analytics et gcm), puis le fichier a été généré avec api_key.

Je pense que c'est un bug et sera bientôt corrigé, en attendant, fais-le.

9
Elvis Oliveira

Bien que la réponse et les commentaires de Jozka Jozin soient acceptés, Cloud Messaging n'est ni lié, ni requis.

Néanmoins, la régénération de google-services.json est la clé de la solution (je l’ai donc voté). Voici ce que j'ai fait:

Comme vous le savez, vous pouvez générer le fichier de configuration pour Analytics à partir du Guide du développeur Google .

1: Choisissez votre application.

 1) choose an app

2: Fermez le popup! Ça cache ...

 Close the popup!

3: L'OPTION D'ADMOB!

 the hidden option of admob

4 : Bien sûr, sélectionnez et activez-le!

 enable it!

5: Nous pouvons maintenant générer des fichiers de configuration!

 generate configuration files

6: Nous l'avons fait! Cette fois, le fichier de configuration doit inclure le api_key de manière appropriée.

 we made it!

Conclusion: L'interface utilisateur de l'outil de génération interactive est un peu déroutant ...

8
hata

Vous pouvez télécharger le fichier google-services.json à nouveau.

Étapes à télécharger:

1). Cliquez sur le menu supérieur de votre application dans la console Firebase.

2) Cliquez sur gérer.

3) Vous trouverez l'option de fichier Download the latest config, télécharger et remplacer le fichier google-services.json dans votre application.

7
Anubhav

D'abord dans votre fichier JSON 

Remplacer 

"api_key": []

avec

"api_key": [{ "current_key": "" }]

Ensuite, la construction de gradle sera réussie, mais lorsque vous exécuterez votre application, vous obtiendrez des erreurs telles que celles-ci.

Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
> com.Android.build.api.transform.TransformException: com.Android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE
    File1: C:\Users\bucky\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.2.2\d20be6a5ddd6f8cfd36ebf6dea329873a1c41f1b\jackson-core-2.2.2.jar
    File2: C:\Users\bucky\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-databind\2.2.2\3c8f6018eaa72d43b261181e801e6f8676c16ef6\jackson-databind-2.2.2.jar
    File3: C:\Users\bucky\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-annotations\2.2.2\285cb9c666f0f0f3dd8a1be04e1f457eb7b15113\jackson-annotations-2.2.2.jar

Pour résoudre ce problème, vous pouvez ajouter ce qui suit à votre fichier app.gradle. Cela a fonctionné pour moi.

packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/ASL2.0'
    }

Edit: Il m'a montré une erreur plus tard lors de la construction du fichier apk. J'ai donc dû télécharger le fichier JSON à nouveau. Après 2 essais, j'ai obtenu le fichier json avec une clé api valide.

4
Doge

Si vous n'utilisez pas Firebase, le lien correct pour générer le fichier de configuration google-services.json est en fait trouvé ici .

3
Phileo99

Vous devez ajouter les empreintes de certificat SHA à votre projet, puis télécharger à nouveau le fichier google-services.jason, qui doit contenir "api_key": [{"current_key": "xxxxxx"}] automatiquement.

Vous pouvez afficher la page suivante pour savoir comment générer les empreintes digitales:

https://developers.google.com/Android/guides/client-auth

Sous Windows, exécutez la commande suivante et utilisez Android comme mot de passe à des fins de débogage:

keytool -exportcert -list -v -alias androiddebugkey -keystore %USERPROFILE%\.Android\debug.keystore
2
Hexise

 enter image description here

Cliquez sur Aperçu -> Icône engrenage -> Paramètres du projet.

 enter image description here

Allez sur Download latest config et cliquez sur le bouton google-service.json pour télécharger le fichier, enregistrez-le dans le dossier de l'application et compilez à nouveau. Prendre plaisir!

2
Pinkesh Darji

régénérez google-services.json à https://developers.google.com/cloud-messaging/Android/client#get-config , il est important d'activer la messagerie en nuage dans "Choisir les services" étape, ouvrez le nouveau fichier google-services.json où vous verrez des mots comme 

    "api_key": [
     {
       "current_key": "xxxxxxxxxxx"
     }"

sans ces mots ou sans valeur de current_key n'est pas le bon fichier 

2
dx3904

J'ai pu résoudre ce problème avec ces étapes qui ne sont pas traitées ici. Cette réponse ne permet PAS d'activer Cloud Messaging, elle récupère uniquement sa clé de serveur.

Commencez par accéder à la console Firebase, puis dans les paramètres du projet, puis cliquez sur l'onglet "Messagerie en nuage". Regardez où il est écrit "clé du serveur" et s'il n'y a pas de longue clé affichée (pas le numéro "Sender ID") cliquez sur "Régénérer la clé" et une longue clé devrait maintenant s'afficher. Copiez cette clé et placez-la dans votre fichier google-services.json à l'adresse suivante: "api_key": [ {"current_key" : "key goes here"} ].

Cette méthode m'a aidé alors qu'aucun des autres ne travaillait, alors j'espère que cela aidera quelqu'un.

2
David Velasquez

Utilisation de Firebase

GoogleServices'. > Missing api_key/current_key object

J'ai eu cette erreur après la mise à jour d'un projet existant vers les nouveaux services Firebase . Le fichier généré google-service.json téléchargé depuis la page des paramètres du projet firebase n'incluait pas le api_key nécessaire. 

Parmi les autres réponses ici, il semble que Google / Firebase Cloud La messagerie (GCM/FCM) doit être ajoutée pour que ce api_key soit inclus dans le fichier google-service.json.

J'ai donc ajouté une dépendance à la base de feu FCM avant de télécharger le fichier à nouveau, et cette fois la clé a été incluse.

Inclure FCM (GCM)

dependencies {
     compile 'com.google.firebase:firebase-messaging:9.0.0'
}
1
TouchBoarder

Si vous ne souhaitez pas reconfigurer et télécharger le fichier google-services.json, vous pouvez récupérer la clé api directement à partir de la console firebase. Il suffit d'aller à

Présentation> Ajouter une autre application> Web

Vous obtiendrez une configuration pour votre base de données qui contiendra apiKey. Copiez simplement cette valeur et placez-la dans la valeur current_key indiquée par XXX ci-dessous.

"api_key": [{ "current_key": "XXX" }]
1
Shakti

Si vous utilisez firebaes, vous devez copier serverKey de la base de feu sur google-services.json.

 "api_key": [{ "current_key": "SERVER_KEY"}

Pour obtenir la clé du serveur, allez à ProjectOverview> Paramètres du projet> CloudMessaging> Copier OR, générez et copiez serverKey ..

0
Tarun Voora

Pour les migrateurs firebase:

assurez-vous d'avoir ajouté au moins une empreinte digitale dans les paramètres de votre projet et téléchargez à nouveau le fichier google-services.json

0
Su-Au Hwang