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:
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 ?
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é.
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": "" }]
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".
vous pouvez télécharger google-services.json de nouveau.
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.
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.
2: fermez la fenêtre! Il se cache...
3: L'OPTION DE L'ADMOB!
4 Evenu de cours, sélectionnez et activer!
5: Maintenant nous pouvons correctement 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: outil de génération est un peu déroutant...
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
.
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.
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
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.
cliquez sur Aperçu - > icône D'engrenage - > paramètres du projet.
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!
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
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 fichiergoogle-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'
}
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" }]
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
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..