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

このページでは、Maps SDK for Android を使用するよう Android Studio プロジェクトを設定する方法について説明します。この手順では、Google マップ テンプレートは利用しません(Google マップ テンプレートを利用する場合は、クイックスタートをご覧ください)。

Google マップ テンプレートは、新しい Android Studio プロジェクトを自動的に設定して、基本の地図を追加します。他の Android Studio テンプレートを使用する Android プロジェクトに地図を追加する場合は、プロジェクトを手動で設定してから、地図を追加する必要があります。

ステップ 1: Android Studio をセットアップする

  1. Arctic Fox 以降の Android Studio が必要です。お持ちでない場合は、ダウンロードしてインストールしてください。
  2. Android Studio で Android Gradle プラグイン バージョン 7.0 以降を使用していることを確認してください。

ステップ 2: SDK をセットアップする

Maps SDK for Android ライブラリは、Google の Maven リポジトリを通して利用できます。アプリに SDK を追加するには、以下の手順を行います。

  1. トップレベルの settings.gradle ファイルで、pluginManagement ブロック以下に Gradle プラグイン ポータルGoogle Maven リポジトリMaven セントラル リポジトリをインクルードします。pluginManagement ブロックは、スクリプト内の他のステートメントよりも前に配置する必要があります。
    pluginManagement {
        repositories {
            gradlePluginPortal()
            google()
            mavenCentral()
        }
    } 
  2. トップレベルの settings.gradle ファイルで、dependencyResolutionManagement ブロック以下に Google の Maven リポジトリMaven セントラル リポジトリをインクルードします。
    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
        repositories {
            google()
            mavenCentral()
        }
    } 
  3. モジュール レベルの build.gradle ファイルで、Maps SDK for Android の Google Play 開発者サービス依存関係を追加します。
    dependencies {
        implementation 'com.google.android.gms:play-services-maps:18.1.0'
        // ...
    } 
  4. モジュール レベルの build.gradle ファイルで、compileSdkminSdk をそれぞれ次の値に設定します。
    android {
        compileSdk 31
    
        defaultConfig {
            minSdk 19
            // ...
        }

ステップ 3: API キーをプロジェクトに追加する

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

このタスクを効率化するには、Android 用 Secrets Gradle プラグインの使用をおすすめします。プラグインをインストールして API キーを保存するには:

  1. Android Studio でプロジェクト レベルの build.gradle ファイルを開き、buildscript の配下にある dependencies 要素に次のコードを追加します。
    buildscript {
        dependencies {
            classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1"
        }
    }
  2. 次に、モジュール レベルの build.gradle ファイルを開き、次のコードを plugins 要素に追加します。
    plugins {
        // ...
        id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
    }
        
  3. ファイルを保存して、プロジェクトを Gradle と同期します
  4. プロジェクト レベルのディレクトリで local.properties を開き、次のコードを追加します。YOUR_API_KEY は実際の API キーに置き換えてください。
    MAPS_API_KEY=YOUR_API_KEY
        
  5. ファイルを保存します。
  6. AndroidManifest.xml ファイルで com.google.android.geo.API_KEY に移動し、android:value attribute を次のように更新します。
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="${MAPS_API_KEY}" />
        

注: 上記のように、com.google.android.geo.API_KEY は、API キーとして推奨されるメタデータ名です。この名前のキーは、Android プラットフォームで Google マップベースの複数の API(Maps SDK for Android など)の認証に使用できます。下位互換性を確保するため、API では com.google.android.maps.v2.API_KEY という名前もサポートされています。この従来の名前は、Android Maps API v2 の認証にのみ使用できます。アプリでは、API キーのメタデータ名を 1 つのみ指定できます。両方を指定すると、API から例外がスローされます。

ステップ 4: アプリ マニフェストを更新する

このセクションでは、AndroidManifest.xml ファイルに追加する設定について説明します。

Google Play 開発者サービスのバージョン番号

application 要素内に次の宣言を追加します。これにより、このアプリのコンパイルに使用された Google Play 開発者サービスのバージョンが埋め込まれます。

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

位置情報の利用許可

アプリでユーザーの位置情報を利用する必要がある場合は、AndroidManifest.xml ファイルで位置情報の利用許可をリクエストする必要があります。利用許可には、デバイスの正確な現在地を提供する ACCESS_FINE_LOCATION と、やや精度の低い位置情報を提供する ACCESS_COARSE_LOCATION の 2 つのタイプがあります。詳しくは、位置情報のガイドをご覧ください。

ACCESS_FINE_LOCATION の利用許可をリクエストするには、次のコードを manifest 要素に追加します。

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

外部ストレージの利用許可

Google Play 開発者サービス SDK のバージョン 8.3 以降を対象としている場合、WRITE_EXTERNAL_STORAGE の利用許可は必要ありません。これ以前のバージョンの Google Play 開発者サービス SDK を対象としている場合は、manifest 要素内で WRITE_EXTERNAL_STORAGE の利用許可をリクエストする必要があります。

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

Apache HTTP レガシー ライブラリ

com.google.android.gms:play-services-maps:16.0.0 以前を使用していて、アプリが API レベル 28(Android 9.0)以降を対象としている場合は、AndroidManifest.xml<application> 要素に以下の宣言を追加する必要があります。それ以外の場合は、この宣言は不要です。

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

ステップ 5: Android デバイスをセットアップする

Maps SDK for Android を使用するアプリを実行するには、Android 4.0 以降をベースとし Google API を含む Android デバイスまたは Android Emulator にアプリをデプロイする必要があります。

  • Android デバイスを使用する場合は、ハードウェア デバイス上でのアプリの実行の手順を踏んでください。
  • Android Emulator を使用する場合は、Android Studio に付属している Android Virtual Device(AVD)Manager を使用して仮想デバイスを作成し、エミュレータをインストールしてください。

ステップ 6: 必要に応じて Play 開発者サービスへの対応状況を確認する

Maps SDK for Android を使用するには、アプリをデプロイするデバイスで Google Play 開発者サービスをインストールしておく必要があります。Google では、アプリから呼び出してインストール状況を確認できるメソッドを用意しています。詳しくは、Google Play 開発者サービスがインストールされているかどうかを確認する方法をご覧ください。

次のステップ

プロジェクトの設定が完了したら、地図を追加できます。