Google Maps einrichten
Hier finden Sie die Schritte zur Verwendung des Google Maps SDK for Android aus MapConductor. Es wird alles abgedeckt, vom Abrufen des API-Schlüssels bis zum Einfügen des Schlüssels mit dem Secrets Gradle Plugin und bis zur Anzeige von GoogleMapView.
Bevor Sie beginnen
API-Schlüssel abrufen
- Rufen Sie die Google Cloud Console auf.
- Erstellen Sie ein neues Projekt oder wählen Sie ein vorhandenes aus.
- Aktivieren Sie das Maps SDK for Android.
- Erstellen Sie unter „Anmeldedaten“ einen API-Schlüssel.
- Beschränken Sie den Schlüssel auf den Paketnamen der App und den SHA-1-Zertifikatsfingerabdruck.
Secrets Gradle Plugin installieren
Dies ist ein Mechanismus, um zu vermeiden, dass der Schlüssel in die Quellverwaltung gelangt. Das Plug-in liest secrets.properties und fügt den Wert zur Buildzeit in den Platzhalter in AndroidManifest.xml ein.
plugins {
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false
}Abhängigkeiten hinzufügen
Fügen Sie das Google Maps SDK selbst und das MapConductor-Modul zur App hinzu und wenden Sie das Secrets Gradle Plugin an. Die Version von MapConductor wird über die BOM zentral festgelegt.
plugins {
// ... other plugins
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
}
dependencies {
// Google Maps SDK
implementation("com.google.android.gms:play-services-maps:20.0.0")
// MapConductor BOM pins every module below
implementation(platform("com.mapconductor:mapconductor-bom:1.3.1"))
implementation("com.mapconductor:core")
implementation("com.mapconductor:for-googlemaps")
// Optional: compose / icons / heatmap / marker-clustering / geojson / kml
}Manifest und Schlüssel konfigurieren
Schreiben Sie nur Platzhalter in das Manifest, und platzieren Sie die tatsächlichen Werte in secrets.properties. Das Plug-in ersetzt sie zur Buildzeit.
<manifest>
<!-- Add location permissions -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application>
<!-- Google Maps API Key -->
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="${GOOGLE_MAPS_API_KEY}" />
</application>
</manifest>GOOGLE_MAPS_API_KEY=your_actual_api_key
ProGuard / R8 konfigurieren (falls zutreffend)
Wenn Sie die Verschleierung aktiviert haben, behalten Sie die Klassen von Play Services Maps bei.
# Google Play Services
-keep class com.google.android.gms.maps.** { *; }
-keep interface com.google.android.gms.maps.** { *; }
-dontwarn com.google.android.gms.**PRÜFEN
Was Sie sehen sollten
Erstellen Sie diesen Bildschirm und führen Sie ihn aus; wenn die Karte angezeigt wird und Zoomen und Schwenken funktionieren, ist das Setup abgeschlossen.
@Composable
fun TestGoogleMaps(modifier: Modifier = Modifier) {
val mapState = rememberGoogleMapViewState(
cameraPosition = MapCameraPosition(
position = GeoPoint(35.6762, 139.6503),
zoom = 12.0,
),
)
// If the map appears, the setup is correct.
GoogleMapView(modifier = modifier, state = mapState)
}Kartendesigns
GoogleMapDesign ist eine direkte Nachbildung der Kartentypen von Google.
Fehlerbehebung
Karte wird nicht angezeigt (grauer Bildschirm)
- Überprüfen Sie, ob der API-Schlüssel in secrets.properties korrekt ist.
- Überprüfen Sie, ob das Maps SDK for Android in der Google Cloud Console aktiviert ist.
- Überprüfen Sie, ob die Einschränkungen des Schlüssels mit dem tatsächlichen Paketnamen und dem SHA-1 übereinstimmen.
Im Protokoll wird ein API-Schlüsselfehler angezeigt
- Überprüfen Sie den Wert und das Ablaufdatum des Schlüssels.
- Überprüfen Sie die Einschränkungseinstellungen auf der Konsole.
Build schlägt fehl
- Überprüfen Sie, ob die Koordinaten und die Version des Karten-SDK mit den Angaben im Versionskatalog übereinstimmen.
- Überprüfen Sie, ob die Repository-Definition in settings.gradle.kts vorhanden ist (wenn repositoriesMode auf FAIL_ON_PROJECT_REPOS eingestellt ist, werden die repositories auf Modulebene ignoriert).
- Wenn mehrere Karten-SDK gleichzeitig installiert sind, überprüfen Sie mit ./gradlew :app:dependencies, ob Abhängigkeitskonflikte vorliegen.
Weiter
Wenn GoogleMapView angezeigt wird, können Overlays wie Marker, Polyline, Circle mit der gemeinsamen API geschrieben werden. Auch wenn der Anbieter ausgetauscht wird, bleibt dieser Teil des Codes unverändert.