Install and set up

Before installing ArcGIS Runtime for Android, make sure your development machine meets the system requirements. A minimum Android API version is required for any target device on which your app will run. For more information, see system requirements.

We recommend installing with Gradle, which will install the needed dependencies and SDK binaries from Esri's Maven repository. If you are unable to make use of Gradle, you can instead download the SDK and then add dependencies to your project manually by including the AAR library and dependency artifacts.

Get the API with Gradle

Perform the following set up steps in an existing Android Studio project, or create a new project.

  1. In your project-level build.gradle file, within the repositories block, add Esri's Maven repository URL to your project. Esri's repository is not open source and therefore not available in the default repository in the script, so you must specify this URL.

               
    allprojects {
      repositories {
        google()
        jcenter()
    
        // Add the Esri public Maven repository
        maven {
            url 'https://esri.jfrog.io/artifactory/arcgis'
        }
      }
    }
    
  2. In your module-level build.gradle file, within the dependencies block, add the ArcGIS Runtime SDK for Android dependency to your app.

        
    dependencies {
      implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0'
      ...
    }
    
  3. Android Studio supports a subset of Java 8 language features. These features are used throughout the ArcGIS Runtime API for Android documentation and samples. To ensure code examples compile if used in your apps, set the compatibility of your app module to use Java 8. In the app module build.gradle file, within the android block, add a compileOptions directive to set the Java compatibility version:

           
    android {
      ...
      compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
      }
    }

Get the API manually

If you are unable to make use of the public Gradle repository, you can instead download the SDK and add then dependencies to your project manually by including the local AAR and all dependency artifacts. You can also download a separate PDF of the Guide documentation.

Download Android SDK
  1. Sign in to ArcGIS for Developers.
  2. On your Dashboard, click Downloads, and select the latest version of ArcGIS Runtime SDK for Android.
  3. Unzip the downloaded archive to a location on your development machine.

Manually add dependencies to the ArcGIS Runtime SDK for Android or use other resources contained in the download. The Android library module (.aar), found in the libs folder, contains the API jar libraries arcgis-android-api and its third-party dependencies and core native libraries

Required permissions and features

Android is a permissions-separated operating system. Depending on which ArcGIS capabilities you use in your app, you may need to add permissions to your manifest. Make sure that you do not include permissions for capabilities that are not included in your app.

If an app is running on Android API version 22 or earlier, all permissions are requested (and granted or denied), at installation time. If an app is running on Android API version 23 or newer, permissions are requested and automatically granted at installation time. Potentially dangerous permissions, however, must be requested at run time, and you need to add code to your app to do so. The Android framework or Android Support library is used to check for and request permissions if not already granted. For more information, see Declaring Permissions and Requesting Permissions at Run Time.

ArcGIS Runtime API for Android capabilities that require permissions:

  • Access to the Internet (most apps will require this): normal permission in Android API 23 and newer.
  • Access to files on local storage (some apps will require this): dangerous permission in Android API 23 and newer.
  • Access to the device's GPS will require fine location permissions: dangerous permission in Android API 23 and newer.

The following code example (for the AndroidManifest.xml file) includes all permissions:

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

Additionally, adding a uses-feature element to the Android manifest will help the Play store make your app available to the correct type of devices.

Apps that use a MapView (2D) require at least OpenGL ES 2.x:

 
<uses-feature android:glEsVersion="0x00020000" android:required="true" />

Apps that use a SceneView (3D) require OpenGL ES 3.x:

 
<uses-feature android:glEsVersion="0x00030000" android:required="true" />

androidx dependency

The DefaultAuthenticationChallengeHandler now uses Chrome Custom Tabs by default in order to prompt users for credentials for OAuth authentication. This provides a better user experience than prompting for credentials in an external browser window. With support for Chrome Custom Tabs, a new transitive dependency of androidx.browser:browser:1.0.0 was introduced. This dependency gets automatically configured when you reference the arcgis-android library from your gradle build script. If you download the API manually, you must configure your project to support the androidx dependency yourself.

If your project still depends on the Android Support libraries, which are no longer supported by Google, you will experience compile or runtime issues with the androidx library. You will need to migrate your project to androidx.

Additional downloads

Additional sources of sample code, data, and tools are available to enhance your ArcGIS Runtime development projects.

Sample code

Browse the comprehensive list of samples in the documentation or download sample code from the GitHub repository.

Interact with live samples using the sample viewer app. Download an .apk version of the sample viewer app from ArcGIS Online or install it from the Google Play Store.

ArcGIS Runtime API for Android Toolkit

The ArcGIS Runtime SDK for Android Toolkit contains controls and utilities to simplify your app development. For example:

  • ArcGISArView: Integrates SceneView with ARCore to enable augmented reality (AR).
  • Bookmarks: Displays the bookmarks present in a web map.
  • Compass: Shows the current orientation of a map or scene by displaying a compass icon that points towards North.
  • Scalebar: Displays the representation of an accurate linear measurement on a map.

StreetMap Premium

To use StreetMap Premium (the StreetMap Premium extension), download the demonstration data from the downloads page for development and testing. Please contact Esri Customer Service for access to the region of your choice for development and testing or to license StreetMap Premium data for deployment.

Supplemental data

To use grid based transformations, download supporting Projection Engine files from the downloads page.

To work with Electronic Navigational Charts (ENC), download the hydrography directory from the downloads page.

Next steps