Skip To Content

Tips for migrating to Android Studio

In this topic

ArcGIS Runtime SDK for Android is intended to be used with Android Studio, the official IDE for Android app development, based on IntelliJ IDEA. Esri no longer ships an Eclipse plug-in, but you can still use the SDK in Eclipse and IntelliJ IDEA IDEs. However, it's recommended that you migrate to use Gradle workflows in Android Studio and the Esri ArcGIS maven repository as early as possible because:

  • It uses Google's Android project structure and build system, based on the Android Gradle plug-in.
  • The needed dependencies are installed and managed for you by Gradle.

Gradle is a build system and build toolkit that allows you to create custom build logic. A Gradle project describes its build in a file called build.gradle located in the root folder of a project. Dependency management through Gradle requires that Gradle know:

  • The location of the repository, in this case, the URL of the ArcGIS Android API maven repository. This maven repository is hosted by Bintray. Bintray allows companies to distribute software releases and integrate into the new Gradle project structure in Android Studio.
  • The location of the dependencies, in this case, this script: compile ''

Google provides additional tips at Migrating to Android Studio.

Android Studio

This section describes the components for IntelliJ IDEA and Android Studio.


Whatever you do in IntelliJ IDEA, you do that in the context of a project. A project is an organizational unit that represents a complete software solution. Your finished product may be decomposed into a series of discrete, isolated modules, but it's a project definition that brings them together and ties them into a greater whole.


A module is a discreet unit of functionality. Android Studio has application and library modules. A module can depend on other modules in the project.

Eclipse ADT versus Android Studio

In Eclipse you have the concept of a workspace. Workspace can consist of multiple projects linked or unlinked. In Android Studio, projects are replaced by Modules and Libary Modules. Modules are a discrete unit of functionality that can be run, tested, and debugged independently. Modules are somewhat similar to an Eclipse project with a few key differences:

  • Each module has its own Gradle build file
  • Some modules can be Library Modules which are conceptually the same as Library Projects in Eclipse.

Including JAR lib dependencies in Android Studio

Local jar files go in the libs/ folder at the root of your module directory. In Android Studio you need to add the jars as a gradle dependency. This should have been added to your gradle build file as follows:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])


The code above adds all the *.jar files from the modules libs/ directory as dependencies.

Including Native .so libs

Local pre-built native libs go in the jniLibs folder in your modules /src/main/ folder. There is no need to add a gradle dependency when using this folder. Native libs outside this folder would require a gradle dependency.

Manifest changes

Several common items and settings which in Eclipse are in the Android Manifest have either automatically added, for example: allowBackup=true or have been moved to build.gradle such as version codes and minSdkVersion, targetSdkVersion, etc. Feature and permission requirements are still declared in the manifest.