J'ai une application Android qui utilise Google Maps. Tout à coup, il a cessé de fonctionner en mode release. La vue Carte indique à les services de Google Play sont mis à jour sur l'émulateur et sur des appareils réels. Rechercher sur le net, tout le monde parle du fichier de clé de l'API, mais ce n'est pas mon problème!
J'ai essayé toutes les combinaisons possibles de paramètres de version et j'ai découvert que le problème se produisait lorsque je définissais debuggable = false
dans la configuration de construction (avec debuggable = true
cela fonctionne). Je ne comprends pas pourquoi les cartes ne fonctionnent pas car, bien entendu, l'APK n'est pas débogable. J'ai également essayé plusieurs versions des services Google Play, même la dernière (10.2.0
). Aucune différence.
Que puis-je faire? S'il vous plaît, aidez-moi car je ne peux pas publier de nouvelle version sur Play Store tant que je n'ai pas corrigé ce bug.
"Si je mets à debuggable la valeur false, cela arrête de fonctionner"
Cela suggère que votre accès à l'API est limité au mode débogage. Considérant qu'il n'y a pas de clés API séparées pour le débogage et la publication, il semblerait que votre clé a été liée à votre certificat de débogage.
Pour citer "Plus d'informations sur les restrictions de clés d'API" sur le documentation :
Vous pouvez éventuellement ajouter une restriction. Pour les applications Android, vous limitez la clé à l'empreinte SHA-1 de votre application.
Si vous avez une telle restriction en place, les empreintes digitales différentes du certificat de version briseront votre accès à l'API.
Consultez la section "Obtenir les informations sur le certificat vous-même" de la documentation liée ci-dessus pour obtenir la bonne empreinte de certificat (de libération).
J'ai eu le même problème et j'ai réussi à le résoudre . Le problème se produit lorsque l'option minifyEnabled est définie sur true (lorsque false le problème ne se produit pas).
En bref, ce que j'ai fait a été d'ajouter la ligne:
-keep class com.google.** {*; }
dans le fichier de règles proguard (proguard-rules.pro), pour éviter que les dépendances des services de Google Play ne soient obfusquées ... Au moins dans mon cas, l'APK résultant ne semble pas beaucoup plus grand si cette règle est ajoutée.
Je pense que le problème survient lorsque l'utilisation des composants de la carte est effectuée à partir d'un autre module (par exemple dans une bibliothèque partagée), mais je ne l'ai pas vérifié.
Malheureusement, les derniers services Google Play sont défectueux et les cartes incorporées cessent de fonctionner sur presque TOUS les téléphones Huawei/Meizu DANS LE MONDE ENTIER . mis à jour à nouveau et, dans quelques heures, cessera de fonctionner. Le seul moyen est d'attendre un correctif Google, qui est supposé être publié assez rapidement.
Voici le ticket officiel de suivi des défauts de Google concernant ce problème:
Avait la même "erreur", pourrait être résolu en utilisant ces étapes:
https://productforums.google.com/forum/#!topic/play/ey7qIRBYj-o
Je sais ce que vous ressentez quand vous recevez constamment un message disant "Les services Google Play sont arrêtés". Pour résoudre ce problème, je recommanderais vider le cache pour les services Google Play (Accédez à Paramètres> Applications ou Gestionnaire d'applications> Services Google Play> Vider le cache> OK) et. Google Play Store. Une fois que vous avez effacé le cache, redémarrez votre appareil à vérifiez si cela fonctionne.
J'ai eu le même problème. Essayez de mettre à jour votre service Google Play de Gradle, puis vérifiez-le. Peut-être que cela vous aidera. Une dernière chose, veuillez utiliser la dernière version de Gradle et la cible doit être supérieure ou égale à 17 également.