Mon problème est assez similaire à Clé api_key/current manquante avec Google Services 3.0.0 mais avec un niveau de complexité supplémentaire.
J'ai mis à jour mon application ce matin avec com.google.gms:google-services:3.0.0 et toutes les dépendances de play-services 9.0.0.
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'infâme erreur
Erreur:L'exécution a échoué pour la tâche ':hotelsclick:processDebugGoogleServices'. > Objet api_key/current_key manquant
Cela semble être dû à une clé API manquante dans le fichier google-services.json (c'est ce qu'on m'a dit). J'ai obtenu une nouvelle clé API de https://developers.google.com/cloud-messaging/Android/client#get-config et y a trouvé le champ suivant.
"api_key": [],
Je suppose que je devrais y mettre ma clé API Google Maps, mais voilà le double problème que je rencontre :
1- si j'essaie de mettre la clé dans ce champ, ça ne marche pas. J'ai essayé avec les deux
"api_key": [{ "current_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-AE" }],
y
"api_key": ["XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-AE"],
l'erreur reste la même.
2- J'ai utilisé gradle afin d'utiliser la construction dynamique. J'ai mis ce qui suit dans mon module build.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 fichier Androidmanifest.xml, j'ai
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_api_key" />
Cela a toujours fonctionné jusqu'à la mise à jour de Google Services 3.0.0. Je ne comprends pas pourquoi cela ne fonctionne pas maintenant. Ne devrait-il pas récupérer la bonne clé d'API à partir du fichier build.gradle compilé et la placer dans le manifeste ?
Ma double question est donc la suivante : pourquoi la récupération dynamique des clés API ne fonctionne-t-elle plus ? Et comment puis-je résoudre ce problème ?
Merci.
0 votes
J'ai remplacé manuellement toutes les
api_key
des objets avec"api_key":[{"current_key":"your_key_here"}]
et l'erreur a disparu. Je suppose qu'il y a un problème avec le générateur de fichiers de configuration.0 votes
Ça n'a pas marché pour moi -.-