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:
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?
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é.
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": "" }]
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.
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.
2: Fermez le popup! Ça cache ...
3: L'OPTION D'ADMOB!
4 : Bien sûr, sélectionnez et activez-le!
5: Nous pouvons maintenant générer des fichiers de configuration!
6: Nous l'avons fait! Cette fois, le fichier de configuration doit inclure le api_key de manière appropriée.
Conclusion: L'interface utilisateur de l'outil de génération interactive est un peu déroutant ...
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.
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.
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 .
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
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
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.
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 fichiergoogle-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'
}
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" }]
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 ..
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