it-swarm.com.de

Android Studio - Die Google-Karte ist auf einem echten Android-Gerät beim Release apk noch leer

googelte, las Millionen Ratschläge, wie man einen Google API-Schlüssel generiert, wie man ihn benutzt, aber nichts funktioniert!

  1. aktivierte Google Maps v2 API
  2. projekt mit einer Aktivität mit Google Map erstellt (Standard-Assistent in Studio)
  3. schlüssel bei Google für Debug-Projekt erstellt, SHA1; Anwendungspaket der Anwendung dem Projektschlüssel bei Google zugewiesen
  4. In google_maps_api.xml eingefügter API-Schlüssel (AndroidManifest.xml wird automatisch aktualisiert)
  5. erstellen und Ausführen auf AVD, auf dem die App läuft, wird Karte angezeigt.

Dann:

  1. API bereits aktiviert
  2. in Android Studio erstellte Keystore für die Veröffentlichung (keystore.rel.jks)
  3. erzeugte Fingerabdrücke (keytool -list -v -keystore C:\Dropbox\AndroidKeyStore\keystore.rel.jks)
  4. auf Google fügte dem neuen Release-Projekt einen neuen Fingerabdruck hinzu ( Release SHA1; App-Paket ) - Schlüssel generierte AIza ...
  5. In google_maps_api.xml eingefügter API-Schlüssel (AndroidManifest.xml wird automatisch aktualisiert)
  6. signierte App generieren (mit keystore.rel.jks) & auf echtem Gerät installieren ... App funktioniert, Karte ist noch leer, nur Zoomschaltflächen und Google-Label sind aktiviert

Vielen Dank im Voraus für alle Ratschläge.

Zdenek

24
morganzd

Stellen Sie sicher, dass Sie Ihren Release-API-Schlüssel in der Datei google_maps_api.xml unter dem Freigabeordner eingeben. 

Wechseln Sie zunächst zur 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 sich der Release-API-Schlüssel in der Datei google_maps_api.xml im Ordner release/res/values befindet, da dies derjenige ist, der für die signierte Release-Version verwendet wird.

enter image description here

61
Daniel Nugent

ich hatte es satt, immer und immer wieder zu versuchen. Es stellt sich heraus, dass PlayStore etwas namens App-Signaturzertifikat hat, und die Karte funktioniert, nachdem ich das sha1 kopiert und in die Google-Konsole für die Android-Karte eingefügt habe.

5
Andres Felipe

im Allgemeinen müssen Sie die folgenden Schritte ausführen:

1- Neue Karten erstellen Aktivität in Android studio

2- In google_maps_api.xml Öffne den Link in Zeile 3

3- Bestätigen Sie die Daten und geben Sie den Firebase-Schlüssel ein

4- Schlüssel kopieren in google_maps_api.xml debuggen und freigeben

5- Geben Sie SHA1 in der Registerkarte gradle -> Signaturbericht frei

nützlicher Link für get sha1

nützlicher Link für die Anmeldung im Debug-Modus, um sha1 zu erhalten

0
masoudmjm

 enter image description here Ich war mit dem gleichen Problem konfrontiert. In meinem Fall war der Fingerabdruck meines Pakets, das in Google Map API Key verwendet wurde, nicht übereinstimmend. 

  • Erstellen Sie eine neue Google-Kartenaktivität.
  • Gehen Sie zu google_maps_api.xml.
  • Kopieren Sie den Link, der in dieser Datei angegeben ist, in den Browser (Anmelden bei Google-Konto).
  • Bei Google ein Projekt erstellen und auf Weiter klicken
  • Klicken Sie auf API-Schlüssel erstellen
  • Kopieren Sie den Schlüssel und fügen Sie ihn in google_maps_api.xml ein

    string name = "google_maps_key" templateMergeStrategy = "preserve" translatable = "false" IHR SCHLÜSSEL

Und führen Sie die Anwendung aus

Verwenden Sie nicht unterhalb des Fingerabdrucks oder Schlüssels, erstellen Sie einen separaten, es basiert auf Paket und Anwendung

0
vijaycaimi

Stellen Sie sicher, dass der in der Datei google_maps_api.xml eingegebene Kartenschlüssel der gleiche Android-Schlüssel ist, der von Google Console generiert wird.

Sie können auch einen neuen Schlüssel ausprobieren.

0
shehzy

Ich bin einen Tag in diesem Thema stecken geblieben. Ich habe alles versucht und schließlich den folgenden Code in meinem Manifest gefunden:

<supports-screens
   Android:anyDensity="false"
   Android:largeScreens="true"
   Android:normalScreens="true"
   Android:smallScreens="false"
   Android:xlargeScreens="true" />

Nach dem Entfernen dieser Linien werden meine Karten korrekt angezeigt.

0
Full-Fledged

Gehen Sie zu h ttps: //play.google.com/apps/publish/ und dann zu App signing:

enter image description here

Vielleicht siehst du das:

enter image description here

In diesem Fall sind Sie möglicherweise ein Entwickler und nicht der Kontoinhaber. Sie müssen den Kontoinhaber kontaktieren und ihn bitten, diesen Vorgang abzuschließen. Befolgen Sie diesen Artikel dazu:

https://learnfreecoding.com/how-to-sign-your-Android-app-with-signed-key-private_key-pepk/

Der Kontoinhaber wird zu diesem Bildschirm gelangen:

enter image description here

Bitten Sie sie, Upload a key exported from Android Studio Zu wählen. Sie müssen eine private_key.pepk - Datei hochladen. So erhalten Sie diese Datei von Android Studio:

  • Gehen Sie zu Build > Generate Signed Bundle / APK....

enter image description here

Wählen Sie Android App Bundle Und klicken Sie auf Next:

enter image description here

Geben Sie die entsprechenden Anmeldeinformationen ein und aktivieren Sie das Kontrollkästchen für Export encrypted key for enrolling published apps in Google Play App Signing.

enter image description here

Geben Sie den Zielordner an und stellen Sie sicher, dass Sie release auswählen, bevor Sie auf Finish klicken:

enter image description here

Dadurch wird die Datei private_key.pepk Generiert, die Sie für Upload a key exported from Android Studio Bereitstellen müssen.

Nachdem Sie die obigen Schritte ausgeführt haben, sehen Sie im Abschnitt App signing Ihrer App Folgendes:

enter image description here

Dann sehen Sie, dass Google Maps auf realen Android Studio-Geräten und nicht nur auf dem Android Studio-Emulator) ordnungsgemäß funktioniert. Dies war die Lösung für mich.

0
Jaime Montoya

Wenn Sie versuchen, einen Map-API-Schlüssel zu erstellen, stellen Sie sicher, dass die URL den richtigen Paketnamen enthält. Es sollte kein Unterpaket wie dieses enthalten.

falsches Paket: com.gpslocation.trackerpro.Activities


korrektes Paket: com.gpslocation.trackerpro

 enter image description here

Vergessen Sie nicht nach dem Bearbeiten zu speichern

0
Md. Shofiulla