Ich habe eine Android-App, die Google Maps nutzt. Plötzlich hörte es im Freigabemodus auf zu arbeiten. In der Kartenansicht werden Google Play-Dienste auf dem Emulator und auf echten Geräten aktualisiert . Im Internet recherchieren alle über die API-Schlüsseldatei, aber das ist nicht mein Problem!
Ich habe jede mögliche andere Kombination von Release-Einstellungen versucht, und Ich habe herausgefunden, dass das Problem auftritt, wenn ich debuggable = false
in der Build-Konfiguration einstelle (mit debuggable = true
funktioniert es). Ich kann nicht verstehen, warum Maps nicht funktionieren, weil die APK natürlich nicht debuggbar ist. Ich habe auch mehrere Versionen von Google Play-Diensten ausprobiert, sogar die neuesten ( 10.2.0
). Kein Unterschied.
Was kann ich tun? Bitte helfen Sie mir, da ich keine neue Version im Play Store veröffentlichen kann, bis ich diesen Fehler behoben habe.
"Wenn ich debuggable auf false setze, funktioniert es nicht mehr"
Dies deutet darauf hin, dass Ihr API-Zugriff auf den Debug-Modus beschränkt ist. In Anbetracht der Tatsache, dass es keine separaten API-Schlüssel für das Debuggen und Freigeben gibt, würde es so aussehen, als wäre Ihr Schlüssel an Ihr Debug-Zertifikat gebunden worden.
Um "Weitere Informationen zu API-Schlüsseleinschränkungen" in der Dokumentation zu zitieren:
Sie können optional eine Einschränkung hinzufügen. Bei Android-Apps beschränken Sie den Schlüssel auf den SHA-1-Fingerabdruck Ihrer App
Wenn Sie eine solche Einschränkung haben, wird der API-Zugriff durch den abweichenden Fingerabdruck des Freigabezertifikats unterbrochen.
Werfen Sie einen Blick auf den Abschnitt "Abrufen der Zertifikatsinformationen selbst" in der oben verlinkten Dokumentation, um den korrekten (Release-) Zertifikat-Fingerabdruck zu erhalten.
Ich hatte das gleiche Problem, und ich habe es geschafft, es zu beheben. Das Problem tritt auf, wenn die Option minifyEnabled auf true gesetzt ist (wenn false, tritt das Problem nicht auf).
Kurz gesagt, was ich getan habe, war die Zeile hinzuzufügen:
%Vor%in die Proguard-Regeldatei (proguard-rules.pro), um zu verhindern, dass Abhängigkeiten von Google Play-Diensten verschleiert werden. Zumindest in meinem Fall scheint die resultierende APK nicht viel größer zu sein, wenn diese Regel hinzugefügt wird.
Ich denke, das Problem tritt auf, wenn die Verwendung von Kartenkomponenten von einem anderen Modul aus erfolgt (z. B. in einer gemeinsam genutzten Bibliothek), aber ich habe es nicht überprüft.
Hatte dasselbe Problem. Versuchen Sie, Ihren Google Play-Dienst von Gradle zu aktualisieren und überprüfen Sie es dann. Vielleicht hilft es dir. Eine weitere Sache, bitte verwenden Sie die neueste Version und das Ziel, bitte stellen Sie auch mehr als oder 17 ein.
Hatte den gleichen "Fehler", konnte mit diesen Schritten gelöst werden:
Ich weiß, wie du dich fühlst, wenn du ständig eine Nachricht bekommst, die sagt "Google Play-Dienste wurden beendet" Um dieses Problem zu beheben, würde ich empfehlen Cache für Google Play-Dienste löschen (Gehe zu Einstellungen & gt; Apps oder Anwendungsmanager & gt; Google Play-Dienste & gt; Cache löschen & gt; OK) und und Google Play Store. Sobald Sie den Cache gelöscht haben, starten Sie Ihr Gerät neu Überprüfen Sie, ob es funktioniert.
Tags und Links android google-maps google-maps-api-2