Clé api manquante/clé courante avec les services Google 3.0.0

depuis que j'ai mis à jour le projet avec la dernière version des services et bibliothèques google (9.0.0), j'ai ce problème étrange:

Error build

console de niveau:

: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
"151930920 de construire".Grad (root):

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0-alpha1'
    classpath 'com.google.gms:google-services:3.0.0'
}
"151930920 de construire".Grad (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, il fonctionne bien avec les bibliothèques de service de jeu dans 8.4.0 et google-services 2.1.0

avez-vous une idée de la solution ?

152
demandé sur Tim Castelijns 2016-05-19 11:01:31

16 réponses

générer un nouveau fichier de configuration (google-services.json) 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

mise à Jour: ou d'activer manuellement le service dans la console développeur et générer la clé.

157
répondu Jozka Jozin 2017-02-19 03:12:09

ajout de la valeur clé de courant vide dans google-services.JSON fichier a résolu ce problème pour moi

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

86
répondu Ajax -the Max 2016-11-02 01:49:36

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

enter image description here

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

enter image description here

34
répondu Htoo Aung Hlaing 2016-05-23 07:48:11

pour tous ceux qui ont ce problème, pour l'instant, vous aurez besoin d'ajouter tout service à votre application à https://developers.google.com/cloud-messaging/android/client#get-config

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

je pense que c'est un bug et sera bientôt fixé, jusqu'à ce que, le faire.

9
répondu Elvis Oliveira 2016-05-21 02:58:52

bien que la réponse acceptée de Jozka Jozin et ses commentaires, la messagerie en nuage n'est ni liée ni requise.

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

comme vous le savez, vous pouvez générer le fichier de configuration pour L'analyse à partir du Google Developers Guide .

1: Choisissez votre application.

1) choose an app

2: fermez la fenêtre! Il se cache...

Close the popup!

3: L'OPTION DE L'ADMOB!

the hidden option of admob

4 Evenu de cours, sélectionnez et activer!

enable it!

5: Maintenant nous pouvons correctement 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: outil de génération est un peu déroutant...

8
répondu hata 2016-05-22 15:36:11

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

étapes pour télécharger:

1). Cliquez sur le menu du haut de votre application dans la Console Firebase .

2). Cliquez sur gérer.

3). Vous trouverez l'option Download the latest config dans votre application, Téléchargez et remplacez le fichier google-services.json .

7
répondu Anubhav 2017-01-29 05:46:19

premier dans votre fichier JSON

remplacer

"api_key": []

avec

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

alors la construction gradle sera réussie mais quand vous exécutez votre application vous pouvez obtenir des erreurs comme les suivantes..

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\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.2c8f6018eaa72d43b261181e801e6f8676c16ef6\jackson-databind-2.2.2.jar
    File3: C:\Users\bucky\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-annotations.2.25cb9c666f0f0f3dd8a1be04e1f457eb7b15113\jackson-annotations-2.2.2.jar

pour corriger ce problème, vous pouvez ajouter ce qui suit à votre application.dossier gradle.. Il a travaillé 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 tandis que construction du fichier apk. J'ai donc dû télécharger à nouveau le fichier json. Après deux essais, j'ai obtenu le fichier json avec une clé api valide.

4
répondu Doge 2017-02-08 07:48:22

si vous n'utilisez pas Firebase, le lien correct pour générer les services google.le fichier de configuration json se trouve en fait ici .

3
répondu Phileo99 2016-09-29 05:47:11

régénérer google-services.json à https://developers.google.com/cloud-messaging/android/client#get-config , une chose importante est que vous devez activer la messagerie Cloud dans L'étape "Choisir des services , ouvrez les nouveaux services google.fichier json, 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
répondu dx3904 2016-05-30 07:43:18

j'ai pu résoudre ce problème avec ces étapes qui ne sont pas répondues ici. Cette réponse n'active pas la messagerie Cloud, elle ne fait que récupérer la clé de son serveur.

tout d'abord, allez sur la Console Firebase, puis allez dans les paramètres du projet, puis cliquez sur L'onglet"messagerie Cloud". Regardez où il est dit " clé du serveur "et s'il n'y a pas de clé longue affichant (pas le numéro" Sender ID") cliquez sur" Régénérer la clé " et une clé longue devrait maintenant apparaître. Copie de cette clé et de le placer dans votre google-services.dossier json: "api_key": [ {"current_key" : "key goes here"} ] .

cette méthode m'a aidé pendant qu'aucun des autres ne travaillait, donc j'espère que cela aide quelqu'un.

2
répondu David Velasquez 2016-10-04 16:14:30

enter image description here

cliquez sur Aperçu - > icône D'engrenage - > paramètres du projet.

enter image description here

allez pour télécharger la dernière config et cliquez sur google-service.bouton json pour télécharger le fichier et le sauvegarder dans le dossier app et compiler à nouveau. Profitez-en!

2
répondu Pinkesh Darji 2017-01-06 09:04:48

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

vous pouvez visualiser la page suivante pour voir comment générer les empreintes digitales:

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

sous windows, exécutez juste la commande suivante, et utilisez android comme mot de passe pour déboguer but:

keytool -exportcert -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
2
répondu Hexise 2018-05-16 03:03:57

Utilisant Firebase

GoogleServices'. > Missing api_key/current_key object

j'ai eu cette erreur après avoir mis à jour un projet existant aux nouveaux services Firebase. Le généré par google-service.json fichier téléchargé de la firebase Project settings page ne comprenait pas le api_key nécessaire.

des autres réponses ici, il ressemble à Google / Firebase Cloud Messagerie (GCM / FCM) doit être ajouté à cette api_key dans le fichier google-service.json .

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

Include FCM (GCM)

dependencies {
     compile 'com.google.firebase:firebase-messaging:9.0.0'
}
1
répondu TouchBoarder 2016-05-22 15:24:35

si vous ne voulez pas reconfigurer et télécharger le fichier google-services.json , vous pouvez récupérer la clé api directement depuis la console firebase. Allez à

vue D'ensemble > ajouter une autre application > Web

vous obtiendrez la configuration de votre base de données qui contiendra apiKey . Il suffit de copier cette valeur et de la placer dans la valeur current_key indiquée par XXX ci-dessous

"api_key": [{ "current_key": "XXX" }]
1
répondu Shakti 2017-02-21 06:50:34

pour les migrants firebase:

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

0
répondu Su-Au Hwang 2016-07-30 10:51:30

si vous utilisez firebaes, vous devez copier serverKey depuis la base de données firebase vers google-services.json

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

pour obtenir la clé du serveur, allez à ProjectOverview> paramètres du projet > CloudMessaging > copiez ou générez et copiez serverKey..

0
répondu Tarun Voora 2018-05-17 05:56:15