Navigation SDK は Maven から利用できます。変更後 開発プロジェクトを作成したら、SDK をそのプロジェクトに統合できます。 次のいずれかの方法を使用できます。
Navigation SDK に Maven を使用する(推奨)
以下では、google()
Maven リポジトリを使用します。このリポジトリは、
プロジェクトに Navigation SDK を追加することをおすすめします。
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>
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 に必要な設定
minSdkVersion
を 23 以上に設定します。targetSdkVersion
を 33 以上に設定します。javaMaxHeapSize
を増やすdexOptions
設定を追加します。- 追加のライブラリの場所を設定します。
repositories
とdependencies
を Navigation SDK。- 依存関係のバージョン番号を最新のものに置き換える 確認できます。
ビルド時間を短縮するためのオプション設定
- コードの圧縮とリソースの有効化 小さくなります 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 マップ プロジェクトにインストールする手順は以下のとおりです。
-
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" } }
-
モジュール レベルの
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' }
- モジュール レベルの
build.gradle.kts
またはbuild.gradle
ファイルで、targetSdk
とcompileSdk
が設定されていること 34 になります。 - ファイルを保存して、プロジェクトを Gradle と同期します。
-
最上位レベルのディレクトリで
secrets.properties
ファイルを開き、次のコードを追加します。YOUR_API_KEY
は実際の API キーに置き換えてください。secrets.properties
はバージョン管理システムにチェックインされないため、このファイルにキーを保存します。NAV_API_KEY=YOUR_API_KEY
- ファイルを保存します。
-
最上位レベルのディレクトリ(
secrets.properties
ファイルと同じフォルダ)にlocal.defaults.properties
ファイルを作成し、次のコードを追加します。NAV_API_KEY=DEFAULT_API_KEY
このファイルの目的は、
secrets.properties
ファイルがない場合に API キーのバックアップ場所を提供し、ビルドが失敗しないようにすることです。この状況は、secrets.properties
を省略したバージョン管理システムからアプリのクローンを作成し、API キーを提供するためにsecrets.properties
ファイルをまだローカルに作成していない場合に発生する可能性があります。 - ファイルを保存します。
-
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 は 例外をスローします。 -
Android Studio でモジュール レベルの
build.gradle.kts
を開きます。または、build.gradle
ファイルを開いて、secrets
プロパティを編集します。もしsecrets
プロパティが存在しない場合は、追加してください。プラグインのプロパティを編集して、
propertiesFileName
をsecrets.properties
、defaultPropertiesFileName
を次に設定: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)。