Api_key / clé actuelle manquante avec Google Services 3.0.0

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

Erreur de construction

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 (root):

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

build.gradle (app):

 dependencies { .... comstack 'com.google.android.gms:play-services-analytics:9.0.0' comstack 'com.google.android.gms:play-services-gcm:9.0.0' comstack 'com.google.android.gms:play-services-maps:9.0.0' comstack '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 service 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

Mettre à jour: ou service activé manuellement dans la console du développeur et générer la clé.

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

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

Oui, comme pour la première fois avec Firebase, je fais face à cela. Cliquez sur le menu de votre application et cliquez sur “Gérer”.

entrer la description de l'image ici

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

entrer la description de l'image ici

Pour tous ceux qui ont ce problème, pour le moment, vous devez append un service à votre application sur https://developers.google.com/cloud-messaging/android/client#get-config.

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

Je pense que c’est un bug et sera bientôt corrigé, jusqu’à ce que, le faire.

Bien que la réponse acceptée de Jozka Jozin et ses commentaires, Cloud Messaging ne soit ni lié ni requirejs.

Néanmoins, la recréation 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 Google Analytics à partir du Guide du développeur de Google .

1: Choisissez votre application.

1) choisissez une application

2: Fermez le popup! Il cache …

Fermez le popup!

3: L’OPTION D’ADMOB!

l'option cachée d'admob

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

activez-le!

5: Maintenant, nous pouvons générer des fichiers de configuration à juste titre!

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.

nous l'avons créé!

Conclusion: l’interface utilisateur de l’outil de génération interactive est un peu déroutante …

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

Étapes pour 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 Download the latest config option de fichier de Download the latest config , téléchargez et remplacez 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 la réussite sera réussie mais lorsque vous exécuterez votre application, vous risquez de recevoir des erreurs telles que 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.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 append 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 à nouveau le fichier json. 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 se trouve réellement ici .

régénérer google-services.json à l’ adresse 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 les services” , ouvrez le nouveau Google fichier -services.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 été en mesure de 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 récupère uniquement sa clé de serveur.

Alors, allez d’abord à la console Firebase, puis allez à Paramètres du projet, puis cliquez sur l’onglet “Messagerie en nuage”. Regardez où il est dit “clé du serveur” et s’il n’y a pas de clé longue affichée (pas le numéro “Sender ID”), cliquez sur “Regenerate Key” et une clé longue devrait maintenant apparaître. Copiez cette clé et placez-la dans votre fichier google-services.json à l’ "api_key": [ {"current_key" : "key goes here"} ] : "api_key": [ {"current_key" : "key goes here"} ] .

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

entrer la description de l'image ici

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

entrer la description de l'image ici

Accédez à Télécharger la dernière configuration et cliquez sur le bouton google-service.json pour télécharger le fichier et l’enregistrer dans le dossier de l’application et comstackr à nouveau. Prendre plaisir!

Vous devez append les empreintes digitales du certificate SHA à votre projet, puis télécharger à nouveau le fichier google-services.jason, qui doit contenir “api_key”: [{“current_key”: “xxxxxx”}] automatiquement.

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

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

Sur Windows, exécutez simplement la commande suivante et utilisez Android comme mot de passe pour le débogage:

 keytool -exportcert -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore 

Utiliser Firebase

 GoogleServices'. > Missing api_key/current_key object 

J’ai eu cette erreur après la mise à jour d’un projet existant sur les nouveaux services Firebase. Le fichier google-service.json généré téléchargé à partir de la page des parameters du projet firebase n’incluait pas la api_key requirejse.

Parmi les autres réponses, il semble que Google / Firebase Cloud Messaging (GCM / FCM) doit être ajouté pour que cette api_key soit incluse dans le fichier google-service.json .

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

Inclure FCM (GCM)

 dependencies { comstack '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 depuis la console firebase. Allez à

Vue d’ensemble> Ajouter une autre application> Web

Vous obtiendrez la configuration de votre firebase database 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" }] 

Pour les migrateurs FireBase:

Assurez-vous d’avoir ajouté au moins une empreinte digitale dans vos parameters de projet et téléchargez à nouveau le fichier google-services.json

Si vous utilisez des firebaes, vous devez copier serverKey de la firebase database vers google-services.json

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

Pour obtenir la clé du serveur, allez à ProjectOverview> Paramètres du projet> CloudMessaging> Copier OU générer et copier serverKey.