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 zestawienie 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 udanej kompilacji i wykorzystania pakietu Navigation SDK.
Zaktualizuj właściwości lokalne
- W folderze Gradle Scripts 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 a także 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 wykonanie kroku R8/ProGuard trwa zbyt długo, rozważ multidex dla prac programistycznych.
- Zmniejsz liczbę tłumaczeń na języki zawarte w kompilacji: ustaw
resConfigs
dla 1 języka w trakcie tworzenia. 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 tworzysz aplikację przy użyciu wtyczki Androida do obsługi Gradle w wersji 4.0.0 lub pozwala na korzystanie z wielu języków Java 8 API. Zobacz artykuł na temat usuwania cukru w środowisku Java 8 pomocy . Aby dowiedzieć się, jak to zrobić, możesz skorzystać z podanego niżej przykładowego fragmentu skryptu kompilacji. kompilowania i zależności.
- Ustaw
Poniżej znajduje się przykład skryptu kompilacji Gradle dla aplikacji. Zajrzyj do przykładowych aplikacji dla zaktualizowanych zbiorów zależności, Pakiet SDK nawigacji, którego używasz, może być nieco późniejszy lub za tę dokumentację.
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 Map Google:
-
W Android Studio otwórz
build.gradle
lubbuild.gradle.kts
najwyższego poziomu. i dodaj ten kod do elementudependencies
podbuildscript
Zakręcony
buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
Kotlin
buildscript { dependencies { classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
-
Otwórz plik
build.gradle
na poziomie modułu i dodaj poniższy kod do sekcjiplugins
.Zakręcony
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
Kotlin
plugins { id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
- W pliku
build.gradle
na poziomie modułu sprawdź, czytargetSdk
orazcompileSdk
mają wartość 34. - Zapisz plik i zsynchronizować projekt z Gradle.
-
Otwórz plik
secrets.properties
w katalogu najwyższego poziomu, a następnie dodaj tego kodu. ZastąpYOUR_API_KEY
swoim kluczem interfejsu API. Przechowuj klucz w tym pliku ponieważsecrets.properties
nie jest sprawdzany w kontroli wersji systemu.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}" />
Note:
com.google.android.geo.API_KEY
is the recommended metadata name for the API key. A key with this name can be used to authenticate to multiple Google Maps-based APIs on the Android platform, including the Navigation SDK for Android. For backwards compatibility, the API also supports the namecom.google.android.maps.v2.API_KEY
. This legacy name allows authentication to the Android Maps API v2 only. An application can specify only one of the API key metadata names. If both are specified, the API throws an exception. -
In Android Studio, open your module-level
build.gradle
orbuild.gradle.kts
file and edit thesecrets
property. If thesecrets
property does not exist, add it.Edit the properties of the plugin to set
propertiesFileName
tosecrets.properties
, setdefaultPropertiesFileName
tolocal.defaults.properties
, and set any other properties.Groovy
secrets { // Optionally specify a different file name containing your secrets. // The plugin defaults to "local.properties" 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.*" }
Kotlin
secrets { // Optionally specify a different file name containing your secrets. // The plugin defaults to "local.properties" 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.*" }
Umieść w aplikacji wymagane informacje o źródłach
Jeśli w swojej aplikacji używasz pakietu Navigation SDK na Androida, musisz dodać teksty informacji o źródle i licencje open source jako część informacji prawnych dotyczących aplikacji. .
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).
O ile nie stwierdzono inaczej, treść tej strony jest objęta licencją Creative Commons – uznanie autorstwa 4.0, a fragmenty kodu są dostępne na licencji Apache 2.0. Szczegółowe informacje na ten temat zawierają zasady dotyczące witryny Google Developers. Java jest zastrzeżonym znakiem towarowym firmy Oracle i jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2024-08-12 UTC.
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Brak potrzebnych mi informacji" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Zbyt skomplikowane / zbyt wiele czynności do wykonania" },{ "type": "thumb-down", "id": "outOfDate", "label":"Nieaktualne treści" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problem z tłumaczeniem" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Problem z przykładami/kodem" },{ "type": "thumb-down", "id": "otherDown", "label":"Inne" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Łatwo zrozumieć" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Rozwiązało to mój problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Inne" }]