Manquant api_key/clé en cours avec les Services Google 3.0.0 et Maps API clé dans la construction.gradle
mon problème est assez similaire à Manquant api_key/clé en cours avec les Services Google 3.0.0 mais avec un niveau supplémentaire de complexité.
J'ai mis à jour mon application, ce matin com.google.gms:google-services:3.0.0 et tous les play-services 9.0.0 dépendances
compile 'com.google.android.gms:play-services-analytics:9.0.0'
compile 'com.google.android.gms:play-services-ads:9.0.0'
compile 'com.google.android.gms:play-services-identity:9.0.0'
compile 'com.google.android.gms:play-services-gcm:9.0.0'
Maintenant, je reçois l'erreur infâme
D'erreur:échec de l'Exécution de la tâche:hotelsclick:processDebugGoogleServices'. > absence de api_key/current_key objet
Ce qui semble être due à un manque de la clé API de google-services.fichier json (donc on m'a dit). J'ai eu une nouvelle clé API de https://developers.google.com/cloud-messaging/android/client#get-config et trouvé le champ suivant en cela.
"api_key": [],
Je suppose que je devrais mettre mon Google Maps API key là, mais ici, il s'agit de la double question que je suis en train de vivre:
1 - si j'essaie de le mettre sur la touche l'intérieur de ce champ, il ne fonctionne pas. J'ai essayé avec les deux
"api_key": [{ "current_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-AE" }],
et
"api_key": ["XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-AE"],
l'erreur reste la même.
2 - j'ai été en utilisant gradle pour utiliser la dynamique de construction. J'ai mis la suivante dans mon module de construire.gradle:
buildTypes {
release {
minifyEnabled true
shrinkResources true
debuggable false
resValue "string", "google_maps_api_key", "ABCDEFGHILMNO... my maps release API key"
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
zipAlignEnabled true
}
debug {
resValue "string", "google_maps_api_key", "ZNTMRNCDNR... my google maps debug API key"
debuggable true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
}
Dans le Androidmanifest.xml fichier j'ai
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_api_key" />
Maintenant, ça a toujours été de travailler jusqu'à ce que j'ai mis à jour les Services Google 3.0.0, je ne comprends pas pourquoi il ne fonctionne pas aujourd'hui. Ne faut-il pas saisir la bonne clé API à partir de la version compilée.gradle fichier et le mettre dans le manifeste?
Donc ma double question est: pourquoi ne pas la dynamique de la clé API extraction fonctionne plus? Et comment puis-je résoudre ce problème?
Merci
- J'ai remplacé manuellement tous les
api_key
objets avec"api_key":[{"current_key":"your_key_here"}]
et l'erreur a disparu. Je suppose que quelque chose est incorrect avec le fichier de configuration du générateur. - ne fonctionne pas pour moi -.-
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé de mettre un vide "current_key" comme suit:
Voir comment ça se passe.
EDIT:
Vous devez remplacer "api_key": [] (situé dans "client") avec "api_key": [{ "current_key": "" }]
"api_key": []
(situé dans le "client") auprès de"api_key": [{ "current_key": "" }]
J'ai été en mesure de résoudre ce problème avec ces étapes ne sont pas traitées ici. Cette réponse n'est PAS activation de la Messagerie en Nuage, c'est uniquement de la récupération de son serveur de clés. (Clarifier, parce que ma réponse a été supprimé pour être un "duplicata" quand il n'est pas du tout).
Donc, d'abord, aller à Firebase de la Console, et ensuite, allez à Paramètres du Projet, puis cliquez sur l'onglet "Messagerie en Nuage". Regardez où il est dit "serveur" et si il n'y a pas de longue touche de l'affichage (pas le "Sender ID") cliquez sur "Régénérer" et une longue clé doit maintenant s'afficher. Copie de cette clé et de le placer dans votre google-services.fichier json à:
"api_key": [ {"current_key" : "key goes here"} ]
.Cette méthode m'a aidé alors qu'aucun des autres étaient de travail, donc j'espère que cela aide quelqu'un.
Ce problème, vous sera le visage après l'utilisation de nouveaux outils de construction
classpath 'com.google.gms:google-services:3.0.0'
,Simplement recréer votre "google-services.json". il sera résolu je l'espère.
Si vous avez accidentellement supprimé la clé ou vous ne pouvez pas le récupérer créer une nouvelle api d'identification ici et le nom exactement “Android clés (auto créé par Google Service)”. Cela permettra d'obtenir vos informations d'identification de retour à la google-services json.
Dans Android Studio, il y a le concept de construire des types et de saveurs, et vous pouvez les utiliser pour obtenir ce dont vous avez besoin. Les types de builds sont les différentes versions de l'application qui sont fonctionnellement identiques, mais peuvent différer dans le code de débogage. Par défaut, tous les Android Gradle projets ont debug et release construire des types.
En outre, vous pouvez ajouter Google Maps activité à votre projet et Android Studio génère les fichiers nécessaires pour vous, vous n'avez qu'à insérer votre touches.
Puisque vous êtes à l'aide de gradle, vous pouvez effectuer les opérations suivantes:
construire.gradle
AndroidManifest.xml
De cette façon, vous n'avez qu'une AndroidManifest.xml et vous le mettre en valeur en fonction du type de build.
Vous pouvez également consulter ce manifeste espace réservé: http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger#TOC-Placeholder-support
Vous devez activer la Messagerie en Nuage, même si vous ne l'utilisez pas et de générer un nouveau fichier json. Lorsque vous activez la Messagerie en Nuage, vous obtenez la clé API besoin pour cela.
Peut-être vous avez besoin de tout autre service, voir ceci:
https://stackoverflow.com/a/37358432/4408810