Android Studio プロジェクトをセットアップする

Navigation SDK は Maven から利用できます。変更後 開発プロジェクトを作成したら、SDK をそのプロジェクトに統合できます。 次のいずれかの方法を使用できます。

以下では、google() Maven リポジトリを使用します。このリポジトリは、 プロジェクトに Navigation SDK を追加することをおすすめします。

  1. Gradle または Maven の構成に次の依存関係を追加します。 VERSION_NUMBER プレースホルダを 必要なバージョンの Navigation SDK for Android。

    Gradle

    モジュール レベルの build.gradle に以下を追加します。

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

    Maven

    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 に依存する各依存関係。

    Gradle

    最上位の build.gradle に次の行を追加します。

    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

    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>
    

ビルドを構成する

プロジェクトを作成したら、プロジェクト Navigation SDK を正常にビルドし、使用する方法を説明します。

ローカル プロパティを更新する

  • Gradle Scripts フォルダで、local.properties ファイルを開いて以下を追加します。 android.useDeprecatedNdk=true

Gradle ビルド スクリプトを更新する

  • build.gradle (Module:app) ファイルを開き、次のガイドラインを使用します。 の要件を満たすように設定を更新します。 設定することをおすすめします。 最適化オプションも確認できます。

    Navigation SDK に必要な設定

    1. minSdkVersion を 23 以上に設定します。
    2. targetSdkVersion を 33 以上に設定します。
    3. javaMaxHeapSize を増やす dexOptions 設定を追加します。
    4. 追加のライブラリの場所を設定します。
    5. repositoriesdependencies を Navigation SDK。
    6. 依存関係のバージョン番号を最新のものに置き換える 確認できます。

    ビルド時間を短縮するためのオプション設定

    • コードの圧縮とリソースの有効化 小さくなります R8/ProGuard を使用して未使用のコードとリソースを依存関係から削除します。条件 R8/ProGuard ステップの実行に時間がかかりすぎる場合は、 multidex: 開発作業に集中できます
    • ビルドに含まれる言語翻訳の数を削減する: Set 開発中の 1 つの言語に対する resConfigs。最終的なビルドでは 実際に使用する言語には resConfigs を設定します。デフォルトでは、Gradle は サポートされているすべての言語のリソース文字列が Navigation SDK。

    Java8 サポートのための desugar を追加する

    • Android Gradle プラグイン 4.0.0 または このプラグインは多数の Java 8 言語のサポートを拡張し、 APIJava 8 の脱糖 サポート をご覧ください。作成方法については、以下のビルド スクリプト スニペットの例をご覧ください。 コンパイルと依存関係のオプションを使用します。

以下に、このアプリケーションの 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 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'
}

アプリに API キーを追加する

このセクションでは、アプリで安全に参照されるように API キーを保存する方法を説明します。API キーは、バージョン管理システムにはチェックインせず、プロジェクトのルート ディレクトリにある secrets.properties ファイルに保存することをおすすめします。secrets.properties ファイルについて詳しくは、Gradle プロパティ ファイルをご覧ください。

このタスクを効率化するには、Android 用 Secrets Gradle プラグインの使用をおすすめします。

Android 用 Secrets Gradle プラグインを Google マップ プロジェクトにインストールする手順は以下のとおりです。

  1. Android Studio で最上位レベルの build.gradle.kts または build.gradle ファイルを開き、buildscript の配下にある dependencies 要素に次のコードを追加します。

    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"
        }
    }
    
  2. モジュール レベルの build.gradle.kts または build.gradle ファイルを開き、次を追加します。 次のコードを plugins 要素に追加します。

    Kotlin

    plugins {
        // ...
        id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
    }

    Groovy

    plugins {
        // ...
        id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
    }
  3. モジュール レベルの build.gradle.kts または build.gradle ファイルで、 targetSdkcompileSdk が設定されていること 34 になります。
  4. ファイルを保存して、プロジェクトを Gradle と同期します
  5. 最上位レベルのディレクトリで secrets.properties ファイルを開き、次のコードを追加します。YOUR_API_KEY は実際の API キーに置き換えてください。secrets.properties はバージョン管理システムにチェックインされないため、このファイルにキーを保存します。
    NAV_API_KEY=YOUR_API_KEY
  6. ファイルを保存します。
  7. 最上位レベルのディレクトリ(secrets.properties ファイルと同じフォルダ)に local.defaults.properties ファイルを作成し、次のコードを追加します。

    NAV_API_KEY=DEFAULT_API_KEY

    このファイルの目的は、secrets.properties ファイルがない場合に API キーのバックアップ場所を提供し、ビルドが失敗しないようにすることです。この状況は、secrets.properties を省略したバージョン管理システムからアプリのクローンを作成し、API キーを提供するために secrets.properties ファイルをまだローカルに作成していない場合に発生する可能性があります。

  8. ファイルを保存します。
  9. AndroidManifest.xml ファイルで com.google.android.geo.API_KEY に移動し、android:value attribute を更新します。 <meta-data> タグが存在しない場合は、タグの子として作成します。 <application> タグ。
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="${MAPS_API_KEY}" />

    注: com.google.android.geo.API_KEY は、推奨されるメタデータ名です。 を入力します。この名前のキーは、複数のサービスに対する認証に使用できます。 Android プラットフォームで Google マップをベースとした API( Android 用 Navigation SDK下位互換性を確保するために、この API は com.google.android.maps.v2.API_KEY という名前をサポートしています。このレガシー 名前を使用すると、Android Maps API v2 に対する認証のみが許可されます。アプリケーションは API キーのメタデータ名を 1 つだけ指定してください。両方を指定すると、API は 例外をスローします。

  10. Android Studio でモジュール レベルの build.gradle.kts を開きます。または、 build.gradle ファイルを開いて、secrets プロパティを編集します。もし secrets プロパティが存在しない場合は、追加してください。

    プラグインのプロパティを編集して、propertiesFileNamesecrets.propertiesdefaultPropertiesFileName を次に設定: local.defaults.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.*"
    }
            

必要な帰属情報をアプリに含める

アプリで Android 用 Navigation SDK を使用する場合は、 (アプリの法的通知の一部として含めることができる、帰属表示テキストおよびオープンソース ライセンス) 。

必要な帰属表示テキストとオープンソース ライセンスについては、 Navigation SDK for Android の zip ファイル:

  • NOTICE.txt
  • LICENSES.txt

モビリティ デリバリーまたは Fleet Engine Deliveries のお客様の場合

Mobility または Fleet Engine Deliveries のお客様は、以下をご確認ください。 料金と請求額をご覧ください。詳細については、このモジュールの 取引の記録については、以下をご覧ください。 お支払い情報の設定 請求対象取引の記録 レポート 請求対象取引を記録する(Android)