このインストール ガイドでは、ArcGIS Runtime SDK for Android (バージョン 100.x) のインストールとセットアップ手順を紹介します。マップを表示する方法については「アプリの作成」のチュートリアルをご覧ください。
Gradle を使用して ArcGIS Runtime アプリケーションをビルドする場合、Maven リポジトリの URL が https://esri.jfrog.io/artifactory/arcgis
であることに注意して下さい。旧 URL の https://esri.bintray.com/arcgis
はサポートされていません。詳細は Announcement to developers using ArcGIS Runtime SDKs for Android and Java をご参照ください。
ArcGIS Runtime for Android をインストールする前に、開発マシンがシステム要件を満たしていることを確認してください。アプリを実行するすべてのターゲット デバイスには、Android API レベルの最小バージョンが必要です。詳細については、システム要件を参照してください。
Gradle を使用してインストールすることをお勧めします。これにより、Esri の Maven リポジトリから必要な依存関係と SDK バイナリがインストールされます。Gradle を利用できない場合は、代わりに SDK をダウンロードしてから、AAR ライブラリと依存関係アーティファクトを含めることでプロジェクトに依存関係を手動で追加できます。
注:制限された開発環境で作業していて、ユーザーディレクトリにファイルを書き込むためのオンラインアクセスまたは権限がない場合は、ダウンロードオプションを選択してください。
既存の Android Studio プロジェクトか新しいプロジェクトを作成して、次のセットアップ手順を実行します。
settings.gradle ファイルの repositories ブロック内で、Esri の Maven リポジトリ URL を追加します。Esri のリポジトリはオープンソースではないため、google() や mavenCentral() からは使用できないため、この URL を指定する必要があります。
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
// Esri の Maven リポジトリを追加します
maven {
url 'https://esri.jfrog.io/artifactory/arcgis'
}
}
}
module レベルの build.gradle ファイルの dependencies ブロック内で、ArcGIS Runtime SDK for Android の依存関係をアプリに追加します。
注:この依存関係を、ArcGIS Runtime SDK for Android を使用する各モジュールに追加する必要があります。
dependencies {
implementation 'com.esri.arcgisruntime:arcgis-android:100.15.1'
...
}
`
module レベルの build.gradle ファイルの android ブロック内で、Java 8 の言語機能との互換性を設定するために、以下のディレクティブがあることを確認してください。
android {
. . .
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
. . .
}
`
module レベルの build.gradle ファイルの android ブロック内に、ビュー バインディングを有効にするブロックがあることを確認します。ビュー バインディングの詳細については、ビュー バインディング を参照してください。
android {
. . .
buildFeatures {
viewBinding true
}
}
module レベルの build.gradle ファイルの android ブロック内に、META-INFDEPENDENCIES ファイルの複製を除外する packagingOptions ブロックを追加します。この設定により、META-INF ディレクトリにある同じファイルを出力に複数回含めようとした場合に発生するコンパイラー エラーを防ぐことができます。パッケージング オプションの詳細については、PackagingOptions を参照してください。
android {
. . .
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
}
}
パブリック Gradle リポジトリを利用できない場合は、代わりに SDK をダウンロードし、ローカル AAR とすべての依存関係アーティファクトを含めることで、依存関係をプロジェクトに手動で追加できます。
ArcGIS Developers にサインインします。
サインインには ArcGIS 開発者アカウントが必要です。アカウントをお持ちでない場合は、サインアップ(無料)してください。アカウントの作成方法は「開発者アカウントの作成」をご覧ください。
ダッシュボード上で、Download をクリックし、最新バージョンの ArcGIS Runtime SDK for Android を選択します。
ダウンロードしたファイルを開発マシン上に解凍します。
依存関係を ArcGIS Runtime SDK for Android に手動で追加するか、ダウンロードに含まれる他のリソースを使用します。libs フォルダにある Android ライブラリ モジュール(.aar)には、API の jar ライブラリ arcgis-android-api とそのサードパーティの依存関係およびコア ネイティブ ライブラリが含まれています。
以下のセットアップ手順では、インターネットから切り離された開発環境で作業していることを想定しています。たとえば、インターネット上でホストされている Maven リポジトリへのアクセスを許可しないファイアウォールの内側などです。インターネット アクセスを使用して開発している場合は、代わりに Gradle で API を取得する の手順に従ってください。以下の手順は、ローカルマシン上の Maven リポジトリでのセットアップを説明していますが、ネットワーク上に Maven サーバーをセットアップしている場合も同様に適用できます。
arcgis-runtime-sdk-android-100.15.1.zip ファイルをダウンロードします。
アーカイブの内容をディスク上の任意の場所に解凍します。
解凍した場所から、libs/aar ディレクトリの内容をディスク上の以下の場所にコピーします。(ローカル Maven リポジトリは、ユーザー ディレクトリの .m2repository をルートとするディレクトリ ツリーであることに注意してください)。
mac: /Users/[user-name]/.m2/repository/com/esri/arcgisruntime/arcgis-android/100.15.1/
Windows: %USERPROFILE%\.m2\repository\com\esri\arcgisruntime\arcgis-android\100.15.1\
ディレクトリのパスは以下のようになっているはずです。
mac (2 ファイル):
/Users/[user-name]/.m2/repository/com/esri/arcgisruntime/arcgis-android/100.15.1/arcgis-android-100.15.1.aar
/Users/[user-name]/.m2/repository/com/esri/arcgisruntime/arcgis-android/100.15.1/arcgis-android-100.15.1.pom
Windows (2 ファイル):
%USERPROFILE%\.m2\repository\com\esri\arcgisruntime\arcgis-android\100.15.1\arcgis-android-100.15.1.aar
%USERPROFILE%\.m2\repository\com\esri\arcgisruntime\arcgis-android\100.15.1\arcgis-android-100.15.1.pom
これらの依存関係のリストと、それらをダウンロードできる URL は以下のとおりです。作業環境のセキュリティ対策と互換性のある方法でこれらを取得する必要があります。
前の手順でダウンロードした依存関係をデプロイします。Maven を使用して、ローカルの Maven リポジトリに依存関係をインストールします。
mvn maven ツールをインストールします。
mac:
brew install mvn
Windows:
https://maven.apache.org/guides/getting-started/windows-prerequisites.html を参照してください。
androidx の依存関係(browser と localbroadcastmanager)については、下記を実行してください。
mvn install:install-file -Dfile=<aar ファイルのパス> -DgroupId=<グループ ID> -DartifactId=<アーティファクト ID> -Dversion=<バージョン> -Dpackaging=aar -DgeneratePom=true
他のすべての依存関係については、下記を実行してください。
mvn install:install-file -Dfile=<jar ファイルのパス> -DgroupId=<グループ ID> -DartifactId=<アーティファクト ID> -Dversion=<バージョン> -Dpackaging=jar -DgeneratePom=true
ローカルの Maven リポジトリを設定する必要があります。次のセクションで、ローカルの Maven リポジトリを使用するようにビルド ファイルを変更します。
プロジェクトの gradle.settings ファイルを編集して、ローカルの Maven リポジトリを参照する必要があります。これを行うには、次のように mavenLocal() を追加します。
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
mavenLocal()
}
}
`
module レベルの build.gradle ファイルに以下の依存関係を追加します。
dependencies {
...
implementation 'com.esri.arcgisruntime:arcgis-android:100.15.1'
implementation 'com.google.code.gson:gson:2.9.0'
implementation 'androidx.browser:browser:1.4.0'
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0'
implementation 'org.apache.httpcomponents.core5:httpcore5:5.0.4'
implementation 'org.apache.httpcomponents.core5:httpcore5-h2:5.0.4'
implementation 'org.slf4j:slf4j-api:1.7.32'
implementation 'commons-codec:commons-codec:1.15'
implementation 'org.conscrypt:conscrypt-openjdk-uber:2.2.1'
implementation 'net.spy:spymemcached:2.12.3'
implementation 'org.ehcache.modules:ehcache-api:3.4.0'
}
`
module レベルの build.gradle ファイルの android ブロック内に、Java 8 言語機能との互換性を設定する次のディレクティブがあることを確認します。
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
`
module レベルの build.gradle ファイルの android ブロック内に、ビュー バインディングを有効にするブロックがあることをを確認します。ビュー バインディングの詳細については、ビュー バインディング を参照してください。
android {
. . .
buildFeatures {
viewBinding true
}
}
module レベルの build.gradle ファイルの android ブロック内に、META-INFDEPENDENCIES ファイルの複製を除外する packagingOptions ブロックを追加します。この設定により、META-INF ディレクトリにある同じファイルを出力に複数回含めようとした場合に発生するコンパイラー エラーを防ぐことができます。パッケージング オプションの詳細については、PackagingOptions を参照してください。
android {
. . .
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
}
}
Android は、権限が分離されたオペレーティング システムです。アプリで使用する ArcGIS の機能によっては、マニフェストに権限を追加する必要がある場合があります。アプリに含まれていない機能の権限を含めないようにしてください。
アプリが Android API バージョン 22 以前で実行されている場合、インストール時にすべての権限が要求されます(許可または拒否)。アプリが Android API バージョン 23 以降で実行されている場合、アクセス許可が要求され、インストール時に自動的に付与されます。ただし、潜在的に危険な権限は実行時にリクエストする必要があり、そのためにはアプリにコードを追加する必要があります。まだ許可されていない場合は、Android フレームワークまたは Android サポート ライブラリが、権限を確認して要求するために使用されます。詳細については、アプリの権限を宣言するとアプリの権限をリクエストするをご覧ください。
アクセス許可が必要な ArcGIS Runtime SDK for Android の機能:
次のコード例(AndroidManifest.xml ファイルの場合)には、これらの権限が含まれています。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Android API Level 30 では、すべてのアプリは Android デバイスのファイルシステムにアクセスするためにスコープ付きストレージを使用します。スコープ付きストレージを使用すると、アプリは (1)自身のファイル、および (2)メディア ストア内の共有ファイルにアクセスすることができます。下記のパーミッションの宣言は、サポートされていません。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Android のストレージは、API レベル 29 以降、劇的に変化しています。Android のストレージとパーミッションの詳細については、次のリンクを参照してください。
Android マニフェストに uses-feature 要素を追加すると、Play ストアでアプリを正しいタイプのデバイスで利用できるようになります。
MapView(2D)を使用するアプリには、最小でも OpenGL ES 2.x が必要です。
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
SceneView(3D)を使用するアプリには、OpenGL ES 3.x が必要です。
<uses-feature android:glEsVersion="0x00030000" android:required="true" />
DefaultAuthenticationChallengeHandler は、OAuth 認証の認証情報の入力をユーザーに求めるために、デフォルトで Chrome カスタムタブ を使用するようになりました。これにより、外部ブラウザ ウィンドウで資格情報の入力を求めるよりも優れたユーザーエクスペリエンスが提供されます。Chrome カスタムタブのサポートにより、androidx.browser:browser の新しい推移的依存関係が導入されました。 この依存関係は、gradle ビルドスクリプトから arcgis-android ライブラリを参照すると自動的に構成されます。API を手動でダウンロードする場合は、androidx の依存関係をサポートするように自分でプロジェクトを構成する必要があります。
プロジェクトが Google でサポートされていない Android サポート ライブラリに依存している場合は、androidx ライブラリでコンパイルまたはランタイムの問題が発生するため、プロジェクトを androidx に移行する必要があります。
ArcGIS Runtime アプリで実行できる、機能についてはサンプル コードを参照してください。
サンプル ビューアー アプリは、Google Play か、ArcGIS Online(.apk ファイル) からも入手できます。
ArcGIS Runtime SDK for Android Toolkit には、アプリの開発を簡略化するためのコントロールやユーティリティが含まれています。例えば、以下のようなものがあります。
ダウンロード ページ から、開発者向けドキュメント(任意の ArcGIS Runtime SDK 用)をアーカイブとしてダウンロードできます。アーカイブには、ローカル Web サーバからドキュメントを提供する手順が含まれているため、インターネットに接続しなくてもドキュメントにアクセスできます。スタンドアロン ドキュメントには、開発者ガイド、API リファレンス、チュートリアル、およびサンプル ドキュメントが含まれています。このドキュメントは、ローカルのスタンドアロン コンピューターまたは内部ネットワーク上で実行するように設計されており、パブリックなインターネット上では実行できません。
ローカルでドキュメントを公開する方法:
注:ライブ ドキュメント サイトはリリース時及びリリースの間に定期的に更新されますが、スタンドアロン ドキュメントは静的で、最初のリリース後は更新されません。
グリッド ベースの地理座標変換を使用している場合は、ダウンロード ページからサポートする Projection Engine ファイルをダウンロードしてください。
航海用電子海図 (ENC) を使用する場合は、ダウンロード ページから hydrography directory をダウンロードします。