Configurer un projet Android Studio

Cette page explique comment configurer un projet Android Studio afin d'utiliser le SDK Maps pour Android sans avoir recours au modèle Google Maps détaillé dans le guide de démarrage rapide.

Le modèle Google Maps configure et ajoute automatiquement une carte de base à un nouveau projet Android Studio. Toutefois, vous pouvez également ajouter une carte à un projet Android qui utilise un autre modèle Android Studio. Pour ce faire, vous devez configurer manuellement votre projet, puis ajouter la carte.

Étape 1 : Configurez Android Studio

  1. Vous devez disposer d'Android Studio Arctic Fox ou version ultérieure. Si vous ne l'avez pas encore fait, téléchargez-le et installez-le.
  2. Veillez à utiliser le plug-in Android Gradle version 7.0 ou ultérieure dans Android Studio.

Étape 2 : Configurez le SDK

La bibliothèque du SDK Maps pour Android est disponible via le dépôt Maven de Google. Pour ajouter le SDK à votre application, procédez comme suit :

  1. Dans le fichier settings.gradle de premier niveau, incluez le portail de plug-ins Gradle, le dépôt Maven de Google et le dépôt central Maven sous le bloc pluginManagement. Dans le script, le bloc pluginManagement doit apparaître avant toute autre instruction.
    pluginManagement {
        repositories {
            gradlePluginPortal()
            google()
            mavenCentral()
        }
    } 
  2. Dans le fichier settings.gradle de premier niveau, incluez le dépôt Maven de Google et le dépôt central Maven sous le bloc dependencyResolutionManagement :
    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
        repositories {
            google()
            mavenCentral()
        }
    } 
  3. Dans le fichier build.gradle au niveau du module, ajoutez la dépendance des services Google Play pour le SDK Maps pour Android.
    dependencies {
    
        // Maps SDK for Android
        implementation 'com.google.android.gms:play-services-maps:18.2.0'
    } 
  4. Dans le fichier build.gradle au niveau du module, définissez compileSdk et minSdk sur les valeurs suivantes :
    android {
        compileSdk 34
    
        defaultConfig {
            minSdk 19
            // ...
        }

Étape 3 : Ajoutez votre clé API au projet

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 :

  1. Dans Android Studio, ouvrez votre fichier build.gradle ou build.gradle.kts de premier niveau et ajoutez le code suivant à l'élément dependencies sous buildscript.

    Groovy

    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")
        }
    }
    
  2. Ouvrez le fichier build.gradle au niveau du module et ajoutez le code suivant à l'élément plugins.

    Groovy

    plugins {
        // ...
        id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
    }

    Kotlin

    plugins {
        id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
    }
  3. Dans le fichier build.gradle au niveau du module, assurez-vous que targetSdk et compileSdk sont définis sur 34.
  4. Enregistrez le fichier et synchronisez votre projet avec Gradle.
  5. Ouvrez le fichier secrets.properties dans votre répertoire de premier niveau et ajoutez le code suivant. Remplacez YOUR_API_KEY par votre clé API.
    MAPS_API_KEY=YOUR_API_KEY
  6. Enregistrez le fichier.
  7. Dans votre fichier AndroidManifest.xml, accédez à com.google.android.geo.API_KEY, puis modifiez le android: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}" />
  8. In Android Studio, open your module-level build.gradle or build.gradle.kts file and edit the secrets property. If the secrets property does not exist, add it.

    Edit the properties of the plugin to set propertiesFileName to secrets.properties, set defaultPropertiesFileName to the name of your local properties file (either local.properties or local.defaults.properties depending on how you created the project), 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.*"
    }
            

Remarque : Comme indiqué ci-dessus, com.google.android.geo.API_KEY est le nom de métadonnées recommandé pour la clé API. Une clé portant ce nom peut être utilisée pour l'authentification auprès de diverses API basées sur Google Maps et s'exécutant sur la plate-forme Android, y compris le SDK Maps pour Android. Pour assurer la rétrocompatibilité, l'API accepte également le nom com.google.android.maps.v2.API_KEY. Cet ancien nom autorise l'authentification auprès de l'API Google Maps Android v2 uniquement. Une application ne peut spécifier qu'un seul des noms de métadonnées de clé API. Si les deux noms sont spécifiés, l'API génère une exception.

Étape 4 : Mettez à jour le fichier manifeste de l'application

Cette section décrit les paramètres à ajouter à votre fichier AndroidManifest.xml.

Numéro de version des services Google Play

Ajoutez la déclaration suivante à l'élément application pour intégrer la version des services Google Play avec laquelle l'application a été compilée.

<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />

Autorisation d'accéder à la position

Si votre application a besoin de géolocaliser l'utilisateur, vous devez demander l'autorisation correspondante dans votre fichier AndroidManifest.xml. Les options sont ACCESS_FINE_LOCATION (indique la position exacte de l'appareil) et ACCESS_COARSE_LOCATION (moins précise). Pour plus d'informations, consultez le guide sur les données de localisation.

Pour demander l'autorisation ACCESS_FINE_LOCATION, ajoutez ce code à l'élément manifest :

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

Autorisation de stockage externe

Si vous envisagez d'utiliser la version 8.3 ou ultérieure du SDK des services Google Play, vous n'avez pas besoin de l'autorisation WRITE_EXTERNAL_STORAGE. Si vous ciblez des versions antérieures du SDK des services Google Play, vous devez demander l'autorisation WRITE_EXTERNAL_STORAGE dans l'élément manifest.

<uses-permission
        android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Bibliothèque Apache HTTP Legacy

Si vous utilisez com.google.android.gms:play-services-maps:16.0.0 ou une version antérieure et que votre application cible le niveau d'API 28 (Android 9.0) ou supérieur, vous devez inclure la déclaration suivante dans l'élément <application> de AndroidManifest.xml. Sinon, ignorez cette déclaration.

<uses-library
    android:name="org.apache.http.legacy"
    android:required="false" />

Étape 5 : Configurez un appareil Android

Pour exécuter une application qui utilise le SDK Maps pour Android, vous devez la déployer sur un appareil Android, ou sur un émulateur Android qui exécute Android 4.0 (ou une version ultérieure) et inclut les API Google.

  • Pour utiliser un appareil Android, suivez les instructions fournies dans Exécuter des applications sur un appareil matériel.
  • Pour utiliser un émulateur Android, vous pouvez créer un appareil virtuel et installer l'émulateur à l'aide d'AVD Manager (le gestionnaire d'appareils virtuels Android) fourni avec Android Studio.

Étape 6 : Vérifiez la prise en charge des services Play (facultatif)

Pour utiliser le SDK Maps pour Android, les services Google Play doivent être installés sur l'appareil sur lequel vous déployez votre application. Pour vérifier leur présence, Google fournit une méthode que vous pouvez appeler depuis votre application. Pour en savoir plus, consultez Vérifier si les services Google Play sont installés.

Étapes suivantes

Une fois votre projet configuré, vous pouvez ajouter une carte.