webentwicklung-frage-antwort-db.com.de

Google Maps wird nicht in signierten apk angezeigt

Ich weiß, dass dies eine häufige Frage ist, und normalerweise besteht die Lösung darin, einen separaten Schlüssel für die Veröffentlichung zu generieren. Ich habe es mehrmals gemacht und mein API-Schlüssel in der Entwicklerkonsole enthält zwei verschiedene SHA1-Fingerabdrücke: einen für das Debuggen von AndroidStudio und für die Freigabe von meinem eigenen Keystore. Ich habe die App mit demselben Keystore signiert und Google Maps Android API v2 in der Konsole aktiviert. Die Kartenaktivität zeigt jedoch nur den weißen Bildschirm mit "Google" in der linken unteren Ecke.

Gibt es Vorschläge, wie das Problem gelöst werden kann?

25
mityakoval

Es klingt, als hätten Sie nur den API-Schlüssel im debug google_maps_api.xml eingetragen. Es klingt auch so, als würden Sie den gleichen API-Schlüssel für Debug und Release verwenden. Sie müssen ihn jedoch immer noch in google_maps_api.xml unter dem Release-Ordner sowie im Debug-Ordner eingeben.

Dies ist etwas verwirrend, denn wenn sich das Projekt in der Android-Ansicht befindet, können Sie nur die Debug-Datei sehen (obwohl (debug) in Klammern neben dieser Ansicht stehen sollte).

Um die Release-Version zu ändern, wechseln Sie in die Projektansicht, indem Sie die Dropdown-Liste oben links im Projekt-Explorer verwenden. Erweitern Sie dann app/src/, und Sie sehen die Unterordner debug und release. Unter dort sollten Sie zwei separate google_maps_api.xml-Dateien unter debug/res/values und release/res/values sehen.

Stellen Sie sicher, dass der API-Schlüssel in der Datei google_maps_api.xml im Ordner release/res/values eingetragen ist, da dies der Schlüssel ist, der für die signierte Release-Version verwendet wird.

enter image description here

59
Daniel Nugent

Wenn Sie Google Play App Signing gewählt haben, wird der SHA-1 Ihrer App bei der Veröffentlichung anders sein.

Da Google Ihr hochgeladenes Zertifikat entfernt und die App anschließend mit einem neuen signiert,

Sie müssen also den neuen SHA-1-Schlüssel kennen.

(Sie müssen nicht das Protokoll für die Veröffentlichung verfolgen und den neuen generierten SHA-1 verfolgen)

 enter image description here


Sie können die 2 SHA-1-Schlüssel vergleichen.

Origin Antwort

19
wajih

Ich habe eine Menge Dinge getan, um diese zu beheben, aber jede Lösung hat mein Problem nicht gelöst. Um dieses Problem zu beheben, habe ich diese Dinge getan

  1. Erstellen Sie eine signierte apk-Datei mit einer neuen Keystore-Datei. Stellen Sie sicher, dass Sie diese im Freigabemodus erstellen 
  2. Nachdem Sie die signierte apk erstellt haben, sollten Sie den Keystore-Pfad beachten, in dem Sie Ihre Keystore-Datei speichern.
  3. Sie müssen Ihren Google Map-API-Schlüssel auch für den Freigabemodus und den Debug-Modus verwenden. Sie können denselben API-Schlüssel für beide verwenden. Stellen Sie jedoch sicher, dass Sie zwei unterschiedliche SHA-Schlüssel für Ihren einzelnen API-Schlüssel in der Google-Konsole hinzufügen.
  4. Sie sollten den Pfad des bin-Ordners von Java von Laufwerk c verwenden, da sich das Keystore-Tool innerhalb des bin-Ordners befindet. Nehmen Sie an, Ihre Datei ähnelt C:\Programme\Java\jdk1.8.0_11\bin .__ Folgen Sie diesem Pfad zu Ihrem Android Studio-Terminal Ändern Sie den Pfad in C:\Programme\Java\jdk1.8.0_11\bin und geben Sie dann den folgenden Befehl ein:

    keytool -list -v -keystore "/Users/NT/Desktop/generalkey.jks"(adress of your keystore file)
    
  5. Wenn Sie diese Schritte ausführen, wird der Schlüssel kopiert 

  6. Gehen Sie zu Google Console/Anmeldeinformationen
  7. Gehen Sie nun zu Ihrem API. Dort sehen Sie die Bearbeitungsoption. Gehen Sie zum Bearbeiten, und fügen Sie Ihren sha-Schlüssel ein, und speichern Sie ihn.
  8. Führen Sie Ihren Code aus.
0
bharat udasi

sie verwenden eine Version von sha1. Sie müssen SHA1 erneut mit dem Befehl Prompt generieren, nachdem Sie die apk-Signatur vorgenommen haben.

Um SHA1 zu regenerieren, gehen Sie zu cmd und geben Sie den Befehl wie folgt:

C:\Program Files\Java\jre1.8.0_91\bin>keytool -list -v -keystore 

"C:\Ihr Schlüsselspeicherpfad\Keystores\Android.jks"

1) Gehen Sie zu Ihrer Java-Programmdatei und öffnen Sie die Java-Version wie jre1.8.0 

2) Öffnen Sie den bin-Ordner und führen Sie den Befehl wie oben beschrieben aus, gefolgt von Ihrem Schlüsselspeicherpfad, den Sie beim Generieren des signierten apk .__ generiert haben. Nachdem Sie diesen Befehl auf cmd ausgeführt haben, müssen Sie das Kennwort der signierten App angeben und Ihr SHA1 wird angezeigt.

3) Kopieren Sie die Datei sha1 und fügen Sie sie in console.developer ein, wobei Sie den Paketnamen in Ihrem API-Schlüssel eingeben.

0