Настройте свой проект Android Studio

На этой странице объясняется, как интегрировать SDK навигации в ваш проект разработки.

Добавьте SDK навигации в свой проект.

SDK для навигации доступен через репозиторий Google Maven . Вы можете добавить SDK в свой проект, используя либо build.gradle в Gradle, либо файл pom.xml в Maven.

  1. Добавьте следующую зависимость в конфигурацию Gradle или Maven, заменив заполнитель VERSION_NUMBER на желаемую версию Navigation SDK для Android.

    Грэдл

    Добавьте следующее в build.gradle на уровне модуля:

    dependencies {
            ...
            implementation 'com.google.android.libraries.navigation:navigation:VERSION_NUMBER'
    }
    

    Мэйвен

    Добавьте следующее в ваш pom.xml :

    <dependencies>
      ...
      <dependency>
        <groupId>com.google.android.libraries.navigation</groupId>
        <artifactId>navigation</artifactId>
        <version>VERSION_NUMBER</version>
      </dependency>
    </dependencies>
    
  2. Если у вас есть зависимости, использующие Maps SDK, вам необходимо исключить эту зависимость из каждого объявленного зависимого объекта, который полагается на Maps SDK.

    Грэдл

    Добавьте следующее в ваш главный файл build.gradle :

    allprojects {
            ...
            // Required: you must exclude the Google Play service Maps SDK from
            // your transitive dependencies to make sure 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'
                }
            }
    }
    

    Мэйвен

    Добавьте следующее в ваш 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>
    

Настройте сборку

После создания проекта вы можете настроить параметры для успешной сборки и использования SDK навигации.

Обновить локальные свойства

  • В папке Gradle Scripts откройте файл local.properties и добавьте android.useDeprecatedNdk=true .

Обновите скрипт сборки Gradle.

  • Откройте файл build.gradle (Module:app) и, следуя приведенным ниже инструкциям, обновите настройки в соответствии с требованиями Navigation SDK, а также рассмотрите возможность установки параметров оптимизации.

    Необходимые настройки для Navigation SDK

    1. Установите minSdkVersion равным 23 или выше.
    2. Установите targetSdkVersion на значение 34 или выше.
    3. Добавьте параметр dexOptions , увеличивающий значение javaMaxHeapSize .
    4. Укажите местоположение для дополнительных библиотек.
    5. Добавьте repositories и dependencies для Navigation SDK.
    6. Замените номера версий в зависимостях на номера последних доступных версий.

    Дополнительные настройки для сокращения времени сборки.

    • Включите сжатие кода и ресурсов с помощью R8/ProGuard, чтобы удалить неиспользуемый код и ресурсы из зависимостей. Если выполнение шага R8/ProGuard занимает слишком много времени, рассмотрите возможность включения multidex для работы в процессе разработки.
    • Сократите количество языковых переводов, включенных в сборку: задайте resConfigs для одного языка во время разработки. Для финальной сборки задайте параметры resConfigs для языков, которые вы действительно используете. По умолчанию Gradle включает строковые ресурсы для всех языков, поддерживаемых Navigation SDK.

    Добавлена ​​поддержка понижения сахара для Java 8.

    • Если вы разрабатываете приложение с использованием плагина Android Gradle версии 4.0.0 или выше, плагин расширяет поддержку использования ряда API языка Java 8. Дополнительную информацию см. в разделе «Поддержка десахаризации Java 8» . Пример скрипта сборки, демонстрирующий параметры компиляции и зависимостей, приведен ниже.
    • Мы рекомендуем использовать Gradle 8.4, плагин Android Gradle версии 8.3.0 и библиотеку Desugar com.android.tools:desugar_jdk_libs_nio:2.0.3 . Эта конфигурация совместима с Navigation SDK для Android версии 6.0.0 и выше.
    • Для модуля app и любых модулей, напрямую зависящих от Navigation SDK, необходимо включить библиотеку Desugar.

Ниже приведён пример скрипта сборки Gradle для приложения. Проверьте примеры приложений на наличие обновлённых наборов зависимостей, так как версия Navigation SDK, которую вы используете, может немного отличаться от указанной в документации.

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 34
        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_nio:2.0.3'
}

Добавьте ключ API в ваше приложение.

В этом разделе описывается, как хранить ваш API-ключ, чтобы ваше приложение могло безопасно его использовать. Не следует добавлять API-ключ в систему контроля версий, поэтому мы рекомендуем хранить его в файле secrets.properties , который находится в корневом каталоге вашего проекта. Более подробную информацию о файле secrets.properties см. в разделе «Файлы свойств Gradle» .

Для упрощения этой задачи мы рекомендуем использовать плагин Secrets Gradle для Android .

Чтобы установить плагин Secrets Gradle для Android и сохранить свой API-ключ:

  1. В Android Studio откройте корневой файл build.gradle и добавьте следующий код в элемент dependencies под buildscript .

    Классный

    buildscript {
        dependencies {
            // ...
            classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1"
        }
    }

    Котлин

    buildscript {
        dependencies {
            // ...
            classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1")
        }
    }
  2. Откройте файл build.gradle вашего приложения и добавьте следующий код в элемент plugins .

    Классный

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

    Котлин

    plugins {
        id("com.android.application")
        // ...
        id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
    }
  3. Если вы используете Android Studio, синхронизируйте свой проект с Gradle .
  4. Откройте файл local.properties в директории вашего проекта и добавьте следующий код. Замените YOUR_API_KEY на ваш API-ключ.
    MAPS_API_KEY=YOUR_API_KEY
  5. В файле AndroidManifest.xml перейдите к com.google.android.geo.API_KEY и обновите атрибут android:value следующим образом:
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="${MAPS_API_KEY}" />
        

    Примечание: com.google.android.geo.API_KEY — это рекомендуемое имя метаданных для ключа API. Ключ с таким именем можно использовать для аутентификации в нескольких API на основе Google Maps на платформе Android, включая Navigation SDK для Android. Для обратной совместимости API также поддерживает имя com.google.android.maps.v2.API_KEY . Это устаревшее имя позволяет аутентифицироваться только в Android Maps API v2. Приложение может указать только одно из имен метаданных ключа API. Если указаны оба, API выдаст исключение.

Включите необходимые данные об авторстве в ваше приложение.

Если вы используете Navigation SDK для Android в своем приложении, вы должны включить текст об авторстве и лицензии с открытым исходным кодом в раздел юридических уведомлений вашего приложения.

Необходимый текст об авторстве и лицензии с открытым исходным кодом можно найти в zip-архиве Navigation SDK для Android:

  • NOTICE.txt
  • LICENSES.txt

Если вы являетесь клиентом, заказывающим услуги по обеспечению мобильности или поставке двигателей для автопарков,

Если вы являетесь клиентом Mobility или Fleet Engine Deliveries, ознакомьтесь с информацией о выставлении счетов в документации Mobility. Для получения дополнительной информации о регистрации транзакций см. разделы «Настройка выставления счетов» , «Регистрация оплачиваемых транзакций» , «Отчетность» и «Регистрация оплачиваемых транзакций (Android)» .