Pakiet Navigation SDK jest dostępny w aplikacji Maven. Po tworzysz projekt programistyczny, możesz zintegrować z nim pakiet SDK, używając jedną z poniższych metod.
Korzystanie z Maven na potrzeby pakietu Navigation SDK (zalecane)
Poniższe polecenie korzysta z repozytorium Maven google()
, które jest najprostszym i
zalecany sposób dodania pakietu Navigation SDK do projektu.
Dodaj tę zależność do konfiguracji Gradle lub Maven: , zastępując zmienną
VERSION_NUMBER
wartością wybraną wersję pakietu Navigation SDK na Androida.Gradle
Dodaj do
build.gradle
na poziomie modułu te elementy:dependencies { ... implementation 'com.google.android.libraries.navigation:navigation:VERSION_NUMBER' }
Maven
Dodaj do
pom.xml
:<dependencies> ... <dependency> <groupId>com.google.android.libraries.navigation</groupId> <artifactId>navigation</artifactId> <version>VERSION_NUMBER</version> </dependency> </dependencies>
Jeśli korzystasz z jakichkolwiek zależności, które korzystają z pakietu Maps SDK, musisz wykluczyć w każdej zadeklarowanej zależności, która bazuje na pakiecie SDK Maps Google.
Gradle
Dodaj do
build.gradle
najwyższego poziomu:allprojects { ... // Required: you must exclude the Google Play service Maps SDK from // your transitive dependencies. This is to ensure there won't be // multiple copies of Google Maps SDK in your binary, as the Navigation // SDK already bundles the Google Maps SDK. configurations { implementation { exclude group: 'com.google.android.gms', module: 'play-services-maps' } } }
Maven
Dodaj do
pom.xml
:<dependencies> <dependency> <groupId>project.that.brings.in.maps</groupId> <artifactId>MapsConsumer</artifactId> <version>1.0</version> <exclusions> <!-- Navigation SDK already bundles Maps SDK. You must exclude it to prevent duplication--> <exclusion> <!-- declare the exclusion here --> <groupId>com.google.android.gms</groupId> <artifactId>play-services-maps</artifactId> </exclusion> </exclusions> </dependency> </dependencies>
Konfigurowanie kompilacji
Po utworzeniu projektu możesz skonfigurować ustawienia uda się skompilować i wykorzystać pakiet Navigation SDK.
Zaktualizuj właściwości lokalne
- W folderze skryptów Gradle otwórz plik
local.properties
i dodajandroid.useDeprecatedNdk=true
.
Aktualizowanie skryptu kompilacji Gradle
Otwórz plik
build.gradle (Module:app)
i postępuj zgodnie z tymi wskazówkami by zaktualizować ustawienia pod kątem w pakiecie SDK nawigacji i rozważyć ustawienie opcje optymalizacji.Wymagane ustawienia pakietu Navigation SDK
- Ustaw
minSdkVersion
na 23 lub więcej. - Ustaw
targetSdkVersion
na 33 lub więcej. - Dodaj ustawienie
dexOptions
, które zwiększa wartośćjavaMaxHeapSize
. - Ustaw lokalizację dodatkowych bibliotek.
- Dodaj
repositories
idependencies
dla: Pakiet SDK do nawigacji. - Zastąp numery wersji w zależnościach najnowszymi dostępnych wersji.
Opcjonalne ustawienia pozwalające skrócić czas kompilacji
- Włącz ograniczanie kodu i zasobów zmniejszanie przy użyciu R8/ProGuard, aby usunąć nieużywany kod i zasoby z zależności. Jeśli etap R8/ProGuard zajmuje zbyt dużo czasu, rozważ włączenie multidexu na potrzeby prac programistycznych.
- Zmniejsz liczbę języków uwzględnionych w kompilacji: podczas tworzenia ustaw opcję
resConfigs
dla jednego języka. Aby utworzyć ostateczną wersję, ustawresConfigs
dla języków, których używasz. Domyślnie Gradle zawiera ciągi zasobów dla wszystkich języków obsługiwanych przez Pakiet SDK do nawigacji.
Dodawanie decugaringu na potrzeby obsługi języka Java8
- Jeśli kompilujesz aplikację za pomocą wtyczki Android Gradle w wersji 4.0.0 lub nowszej, wtyczka rozszerza obsługę interfejsów API języka Java 8. Zobacz informacje o odszuwianiu w środowisku Java 8 pomocy . Zobacz poniżej przykładowy fragment skryptu kompilacji, aby dowiedzieć się, jak to zrobić. kompilowania i zależności.
- Ustaw
Poniżej znajduje się przykład skryptu kompilacji Gradle dla aplikacji. Sprawdź próbne aplikacje, aby dowiedzieć się, czy zestawy zależności zostały zaktualizowane, ponieważ wersja pakietu SDK Navigation, której używasz, może być nieco nowsza lub starsza niż ta opisana w dokumentacji.
apply plugin: 'com.android.application'
ext {
navSdk = "__NAVSDK_VERSION__"
}
android {
compileSdk 33
buildToolsVersion='28.0.3'
defaultConfig {
applicationId "<your id>"
// Navigation SDK supports SDK 23 and later.
minSdkVersion 23
targetSdkVersion 33
versionCode 1
versionName "1.0"
// Set this to the languages you actually use, otherwise you'll include resource strings
// for all languages supported by the Navigation SDK.
resConfigs "en"
multiDexEnabled true
}
dexOptions {
// This increases the amount of memory available to the dexer. This is required to build
// apps using the Navigation SDK.
javaMaxHeapSize "4g"
}
buildTypes {
// Run ProGuard. Note that the Navigation SDK includes its own ProGuard configuration.
// The configuration is included transitively by depending on the Navigation SDK.
// If the ProGuard step takes too long, consider enabling multidex for development work
// instead.
all {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
// Flag to enable support for the new language APIs
coreLibraryDesugaringEnabled true
// Sets Java compatibility to Java 8
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
repositories {
// Navigation SDK for Android and other libraries are hosted on Google's Maven repository.
google()
}
dependencies {
// Include the Google Navigation SDK.
// Note: remember to exclude Google Play service Maps SDK from your transitive
// dependencies to avoid duplicate copies of the Google Maps SDK.
api "com.google.android.libraries.navigation:navigation:${navSdk}"
// Declare other dependencies for your app here.
annotationProcessor "androidx.annotation:annotation:1.7.0"
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.9'
}
Dodawanie klucza interfejsu API do aplikacji
W tej sekcji opisano, jak zapisać klucz interfejsu API, aby umożliwić bezpieczne korzystanie z niego
do aplikacji. Nie sprawdzaj klucza interfejsu API w systemie kontroli wersji, dlatego zalecamy
i przechowywanie go w pliku secrets.properties
, który znajduje się w katalogu głównym instancji
w projektach AI. Więcej informacji o pliku secrets.properties
znajdziesz tutaj:
Pliki właściwości Gradle.
Aby usprawnić to zadanie, zalecamy skorzystanie z Wtyczka Gradle obiektów tajnych na Androida.
Aby zainstalować wtyczkę Gradle obiektów tajnych na Androida w projekcie Mapy Google:
-
W Android Studio otwórz
build.gradle.kts
lubbuild.gradle
najwyższego poziomu. i dodaj ten kod do elementudependencies
podbuildscript
Kotlin
buildscript { dependencies { classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
Zakręcony
buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
-
Otwórz plik
build.gradle.kts
lubbuild.gradle
na poziomie modułu i dodaj ten kod do elementuplugins
.Kotlin
plugins { // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
Zakręcony
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
- W pliku
build.gradle.kts
lubbuild.gradle
na poziomie modułu sprawdź, że wartościtargetSdk
icompileSdk
są ustawione do 34. - Zapisz plik i zsynchronizować projekt z Gradle.
-
Otwórz plik
secrets.properties
w katalogu najwyższego poziomu, a następnie dodaj atrybut tego kodu. ZastąpYOUR_API_KEY
swoim kluczem API. Przechowuj klucz w tym pliku, ponieważsecrets.properties
nie jest uwzględniany w systemie kontroli wersji.NAV_API_KEY=YOUR_API_KEY
- Zapisz plik.
-
Utwórz plik
local.defaults.properties
w katalogu najwyższego poziomu, tak samo jako pliksecrets.properties
, a potem dodaj podany niżej kod.NAV_API_KEY=DEFAULT_API_KEY
Ten plik ma na celu udostępnienie zapasowej lokalizacji klucza interfejsu API, jeśli plik Nie znaleziono pliku
secrets.properties
, więc kompilacje nie zawierają błędów. Może się tak zdarzyć, jeśli: sklonujesz aplikację z systemu kontroli wersji, który pomijasecrets.properties
oraz nie utworzyłeś jeszcze lokalnie plikusecrets.properties
, który umożliwi przesyłanie klucz interfejsu API. - Zapisz plik.
-
W pliku
AndroidManifest.xml
otwórzcom.google.android.geo.API_KEY
i zaktualizujandroid:value attribute
. Jeśli tag<meta-data>
nie istnieje, utwórz go jako element podrzędny tagu<application>
.<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />
Uwaga: Zalecana nazwa metadanych to
com.google.android.geo.API_KEY
dla klucza interfejsu API. Klucz o tej nazwie może być używany do uwierzytelniania w wielu Interfejsy API oparte na Mapach Google na platformie Android, w tym Pakiet SDK do nawigacji na Androida. Aby zapewnić zgodność wsteczną, interfejs API obsługuje nazwęcom.google.android.maps.v2.API_KEY
. To dziedzictwo name umożliwia uwierzytelnianie tylko dla interfejsu Android Maps API v2. Aplikacja może określać tylko jedną z nazw metadanych klucza interfejsu API. Jeśli podasz obie wartości, interfejs API zwróci wyjątek. -
W Android Studio otwórz
build.gradle.kts
na poziomie modułu lubbuild.gradle
i edytuj właściwośćsecrets
. Jeśli Właściwośćsecrets
nie istnieje. Dodaj ją.Edytuj właściwości wtyczki, aby ustawić
propertiesFileName
nasecrets.properties
, ustawdefaultPropertiesFileName
nalocal.defaults.properties
i ustaw pozostałe właściwości.Kotlin
secrets { // To add your Maps API key to this project: // 1. If the secrets.properties file does not exist, create it in the same folder as the local.properties file. // 2. Add this line, where YOUR_API_KEY is your API key: // MAPS_API_KEY=YOUR_API_KEY propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" // Configure which keys should be ignored by the plugin by providing regular expressions. // "sdk.dir" is ignored by default. ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore" ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*" }
Zakręcony
secrets { // To add your Maps API key to this project: // 1. If the secrets.properties file does not exist, create it in the same folder as the local.properties file. // 2. Add this line, where YOUR_API_KEY is your API key: // MAPS_API_KEY=YOUR_API_KEY propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" // Configure which keys should be ignored by the plugin by providing regular expressions. // "sdk.dir" is ignored by default. ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore" ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*" }
Dodaj wymagane informacje w aplikacji
Jeśli w swojej aplikacji używasz pakietu SDK nawigacji na Androida, w sekcji powiadomień prawnych aplikacji musisz uwzględnić tekst atrybucji i licencja na oprogramowanie open source.
Wymagany tekst atrybucji i licencje open source znajdziesz w Plik ZIP pakietu Navigation SDK na Androida:
NOTICE.txt
LICENSES.txt
Jeśli jesteś klientem Mobility lub Fleet Engine Deliveries
Jeśli korzystasz z usługi Mobility lub Fleet Engine Deliveries, zapoznaj się z informacje znajdziesz w dokumentacji usługi Mobility. Więcej informacji na temat: rejestrowanie transakcji, patrz skonfigurować rozliczenia, rejestrować transakcje podlegające rozliczeniu, Raportowanie oraz Rejestrowanie transakcji podlegających rozliczeniu (Android).