Ce guide liste les exigences de configuration de compilation pour utiliser SDK Navigation pour Android Les instructions supposent que vous disposez d'un IDE Android et qui maîtrisent le développement Android.
Configuration minimale requise pour utiliser le SDK Navigation
Ces exigences s'appliquent au SDK Navigation pour Android 4.99 et versions antérieures.
Un projet de console Google Cloud avec le SDK Navigation activé Pour le provisionnement, contactez votre représentant Google Maps Platform.
Votre application doit cibler le niveau d'API 30 ou supérieur.
Pour exécuter une application créée avec le SDK Navigation, l'application Android l'appareil doit disposer des services Google Play installé et activé.
Texte d'attribution et de licence doivent être ajoutées à l'application.
Configurer vos projets: projet Cloud Console et projet Android
Avant de pouvoir compiler ou tester une application, vous devez créer un projet dans la console Cloud et ajouter des identifiants de clé API. Le provisionnement doit être activé pour le projet SDK Navigation. Toutes les clés du projet de la console Cloud disposent du même accès au SDK Navigation. Une clé peut être associée à plusieurs projets de développement. Si vous disposez déjà d'un projet de console, vous pouvez ajouter une clé à votre projet actuel.
Pour configurer
- Dans votre navigateur Web préféré, connectez-vous à la console Cloud et créez votre Console Cloud projet.
- Dans votre IDE, comme Android Studio, créez un environnement de développement d'applications Android. projet et notez le nom du package.
- Contactez votre représentant Google Maps Platform pour qu'il vous donne accès à la SDK Navigation pour la console Cloud projet.
- Depuis le tableau de bord de la console Cloud dans votre navigateur Web, procédez comme suit : créer des identifiants pour générer une clé API avec des restrictions.
- Sur la page Clé API, cliquez sur "Applications Android" dans Restrictions relatives aux applications. dans une zone géographique spécifique.
- Cliquez sur Ajouter le nom et l'empreinte du package, puis saisissez le nom du package le nom de votre projet de développement et l'empreinte SHA-1 de cette clé.
- Cliquez sur Enregistrer.
Ajouter le SDK Navigation à votre projet
Le SDK Navigation est disponible via Maven ou en tant que Lot AAR : Après avoir créé votre projet de développement, vous pouvez y intégrer le SDK en à l'aide de l'une des approches suivantes.
Utiliser Maven pour le SDK Navigation version 4.5 ou ultérieure (recommandé)
La commande suivante utilise le dépôt Maven google()
, qui est le plus simple
et la méthode recommandée pour ajouter le SDK Navigation à votre
projet
Ajoutez la dépendance suivante à votre configuration Gradle ou Maven : en remplaçant l'espace réservé
VERSION_NUMBER
par la version souhaitée du SDK Navigation pour Android.Gradle
Ajoutez le code suivant à votre
build.gradle
au niveau du module:dependencies { ... implementation 'com.google.android.libraries.navigation:navigation:VERSION_NUMBER' }
Si vous effectuez une mise à niveau à partir du dépôt Maven d'origine, notez que le groupe et les noms des artefacts ont changé, Le plug-in
com.google.cloud.artifactregistry.gradle-plugin
n'est plus nécessaires.Ajoutez le code suivant à votre
build.gradle
de premier niveau: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
Ajoutez les éléments suivants à votre
pom.xml
:<dependencies> ... <dependency> <groupId>com.google.android.libraries.navigation</groupId> <artifactId>navigation</artifactId> <version>VERSION_NUMBER</version> </dependency> </dependencies>
Si vous avez des dépendances qui utilisent le SDK Maps, vous devez exclure le dans chaque dépendance déclarée qui repose sur le SDK Maps.
<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>
Utiliser le SDK Maven pour Navigation antérieur à la version 4.5 ou avec le SDK Driver
Le SDK Navigation reste disponible via
le dépôt Maven d'origine jusqu'au reste des versions v4. Il s'agit de la
bibliothèque avec les mêmes mises à jour que la version précédente et fournit
la compatibilité avec le SDK Driver et les autres bibliothèques pendant la transition. En utilisant
cette dépendance nécessite de se connecter à votre projet Cloud via gcloud
lorsque
de la compilation.
- Configurez votre environnement pour accéder au dépôt Maven de Google, comme décrit dans le Prérequis de la documentation sur le SDK grand public. Accès à la Le SDK Navigation est contrôlé via un groupe d'espaces de travail.
Ajoutez la dépendance suivante à votre configuration Gradle ou Maven, en remplaçant la valeur Espace réservé
VERSION_NUMBER
pour la version souhaitée du SDK Navigation.Gradle
Ajoutez le code suivant à votre
build.gradle
au niveau du module:dependencies { ... implementation 'com.google.android.maps:navsdk:VERSION_NUMBER' }
Ajoutez le code suivant à votre
build.gradle
de premier niveau: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
Ajoutez les éléments suivants à votre
pom.xml
:<dependencies> ... <dependency> <groupId>com.google.android.maps</groupId> <artifactId>navsdk</artifactId> <version>VERSION_NUMBER</version> </dependency> </dependencies>
Si vous avez des dépendances qui utilisent le SDK Maps, vous devez exclure le dans chaque dépendance déclarée qui repose sur le SDK Maps.
<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>
Utiliser un bundle AAR téléchargé (non recommandé)
Le SDK Navigation est également disponible en tant que bundle AAR. Après avoir créé le projet de développement, vous pouvez intégrer le SDK. Ces instructions supposez que vous utilisez Android Studio pour votre IDE.
Téléchargez la dernière version du SDK Navigation du Drive partagé et décompressez-le. Si vous n'y ont pas accès, contactez votre représentant.
Dans Android Studio, ouvrez un projet et Ajoutez le package de services Google Play à l'aide de SDK Manager.
À partir du répertoire de fichiers ZIP, copiez
libs/google_navigation_navmap.aar
dans le répertoireapp/libs
de votre projet.Ajoutez le code suivant à votre
build.gradle
au niveau du module:implementation(name: 'google_navigation_navmap', ext: 'aar')
Ajoutez le code suivant à votre
build.gradle
de premier niveau: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' } } }
Configurer la compilation
Après avoir créé le projet, vous pouvez configurer les paramètres d'une créer et utiliser correctement le SDK Navigation ;
Mettre à jour les établissements locaux
- Dans le dossier Gradle Scripts (Scripts Gradle), ouvrez le fichier
local.properties
et ajoutezandroid.useDeprecatedNdk=true
Mettre à jour le script de compilation Gradle
Ouvrez le fichier
build.gradle (Module:app)
et suivez les instructions ci-dessous pour : Mettez à jour les paramètres pour répondre aux exigences du SDK Navigation et envisager de définir les options d'optimisation.Paramètres requis pour le SDK Navigation
- Définissez
minSdkVersion
sur 23 ou plus. - Définissez
targetSdkVersion
sur 30 ou plus. - Ajoutez un paramètre
dexOptions
qui augmente lajavaMaxHeapSize
. - Définissez l'emplacement des bibliothèques supplémentaires.
- Ajoutez
repositories
etdependencies
pour le SDK Navigation. - Remplacez les numéros de version des dépendances par les dernières versions disponibles.
Paramètres facultatifs pour réduire la durée de compilation
- Activer la minification de code et la réduction des ressources utiliser R8/ProGuard pour supprimer le code et les ressources inutilisés des dépendances. Si l'étape R8/ProGuard prend trop de temps, vous pouvez l'activer. Multidex pour les tâches de développement.
- Réduire le nombre de langues incluses dans la version: Définir
resConfigs
pour une langue pendant le développement. Pour le build final, définissezresConfigs
pour les langues que vous utilisez réellement. Par défaut, Gradle inclut chaînes de ressources pour toutes les langues compatibles avec le SDK Navigation.
- Définissez
Vous trouverez ci-dessous un exemple de script de compilation Gradle pour l'application. Consultez le applications exemples pour les ensembles de dépendances mis à jour, en tant que version de Le SDK Navigation que vous utilisez peut être légèrement en avance ou derrière cette documentation.
apply plugin: 'com.android.application'
apply plugin: 'com.google.cloud.artifactregistry.gradle-plugin'
ext {
androidxVersion = "1.0.0"
lifecycle_version = "1.1.1"
}
android {
compileSdkVersion 30
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "<your id>"
// Navigation SDK supports SDK 23 and later.
minSdkVersion 23
targetSdkVersion 30
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 {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
// This tells Gradle where to look to find additional libraries - in this case, the
// google_navigation_navmap.aar file.
repositories {
flatDir {
dirs 'libs'
}
google()
// Required for accessing the Navigation SDK on Google's Maven repository.
maven {
url "artifactregistry://us-west2-maven.pkg.dev/gmp-artifacts/transportation"
}
}
dependencies {
// Include the Google Navigation SDK
implementation 'com.google.android.maps:navsdk:4.4.0'
// The included AAR file under libs can be used instead of the Maven repository.
// Uncomment the line below and comment out the previous dependency to use
// the AAR file instead. Ensure that you add the AAR file to the libs directory.
// implementation(name: 'google_navigation_navmap', ext: 'aar')
// These dependencies are required for the Navigation SDK to function
// properly at runtime.
implementation 'org.chromium.net:cronet-fallback:69.3497.100'
// Optional for Cronet users:
// implementation 'org.chromium.net:cronet-api:69.3497.100'
implementation 'androidx.appcompat:appcompat:${androidxVersion}'
implementation 'androidx.cardview:cardview:${androidxVersion}'
implementation 'com.google.android.material:material:${androidxVersion}'
implementation 'androidx.mediarouter:mediarouter:${androidxVersion}'
implementation 'androidx.preference:preference:${androidxVersion}'
implementation 'androidx.recyclerview:recyclerview:${androidxVersion}'
implementation 'androidx.legacy:legacy-support-v4:${androidxVersion}'
implementation 'com.github.bumptech.glide:glide:4.9.0'
implementation 'com.github.bumptech.glide:okhttp-integration:4.9.0'
implementation 'android.arch.lifecycle:common-java8:$lifecycle_version'
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.google.android.datatransport:transport-api:2.2.0'
implementation 'com.google.android.datatransport:transport-backend-cct:2.2.0'
implementation 'com.google.android.datatransport:transport-runtime:2.2.0'
implementation 'joda-time:joda-time:2.9.9'
annotationProcessor 'androidx.annotation:annotation:1.1.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
}
Ajouter la clé API à votre application
Cette section explique comment stocker votre clé API pour qu'elle puisse être référencée de manière sécurisée par votre application. Vous ne devez pas enregistrer votre clé API dans votre système de contrôle des versions. Nous vous recommandons donc de la stocker dans le fichier secrets.properties
, qui se trouve dans le répertoire racine de votre projet. Pour en savoir plus sur le fichier secrets.properties
, consultez Fichiers de propriétés Gradle.
Pour vous faciliter la tâche, nous vous recommandons d'utiliser le plug-in Secrets Gradle pour Android.
Pour installer le plug-in Secrets Gradle pour Android dans votre projet Google Maps :
-
Dans Android Studio, ouvrez votre fichier
build.gradle.kts
oubuild.gradle
de premier niveau et ajoutez le code suivant à l'élémentdependencies
sousbuildscript
.Kotlin
buildscript { dependencies { classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
Groovy
buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
-
Ouvrez le fichier
build.gradle.kts
oubuild.gradle
au niveau du module et ajoutez-le le code suivant à l'élémentplugins
.Kotlin
plugins { // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
Groovy
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
- Dans le fichier
build.gradle.kts
oubuild.gradle
au niveau du module, assurez-vous quetargetSdk
etcompileSdk
sont définis à 34 ans. - Enregistrez le fichier et synchronisez votre projet avec Gradle.
-
Ouvrez le fichier
secrets.properties
dans votre répertoire de premier niveau et ajoutez le code suivant. RemplacezYOUR_API_KEY
par votre clé API. Stockez votre clé dans ce fichier, carsecrets.properties
n'est pas vérifié dans un système de contrôle des versions.NAV_API_KEY=YOUR_API_KEY
- Enregistrez le fichier.
-
Créez le fichier
local.defaults.properties
dans votre répertoire de premier niveau (même dossier que le fichiersecrets.properties
), puis ajoutez le code suivant.NAV_API_KEY=DEFAULT_API_KEY
Ce fichier a pour but de fournir un emplacement de sauvegarde de la clé API, à utiliser si le fichier
secrets.properties
est introuvable pour éviter l'échec des créations. Cette situation peut se produire si vous clonez l'application à partir d'un système de contrôle des versions qui ometsecrets.properties
et que vous n'avez pas encore créé de fichiersecrets.properties
localement pour fournir votre clé API. - Enregistrez le fichier.
-
Dans votre fichier
AndroidManifest.xml
, accédez àcom.google.android.geo.API_KEY
, puis modifiez leandroid:value attribute
. Si le tag<meta-data>
n'existe pas, créez-le comme enfant du tag<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.kts
orbuild.gradle
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.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.*" }
Groovy
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.*" }
Inclure les attributions requises dans votre application
Si vous utilisez le SDK Navigation pour Android dans votre application, vous devez inclure texte d'attribution et licences Open Source dans les mentions légales de votre application. .
Vous trouverez le texte d'attribution et les licences Open Source requis dans la Fichier ZIP du SDK Navigation pour Android:
NOTICE.txt
LICENSES.txt
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/08/22 (UTC).
[] [] { "lastModified": "Dernière mise à jour le 2024/08/22 (UTC).", "confidential": False }