Including native libraries in your APK

Include native libraries in Android Gradle.

Including native libraries in your APK

I have recently been working on a top secret project that includes the wonderful native libraries of the libgdx project in order to have a decent Box2d physics simulation. I am using Android Studio 0.4.0 as of this week, and the recently released 0.7.3 of the Gradle Android build tools includes a new way to bundle shared libraries with an APK. Here's how to do it.

Edit your build.gradle file and add something like the following in the android section:

    android {
        compileSdkVersion 19
        buildToolsVersion '19.0.1'

        defaultConfig {
            minSdkVersion 9
            targetSdkVersion 19
            renderscriptTargetApi 18
            renderscriptSupportMode true

        sourceSets {
            main {
                jniLibs.srcDir file('jni/')

The magic is on line 14, where you can see the new jniLibs.srcDir property being set. The trailing slash isn't required. I just did it to be explicit that it is a directory.

Then make a jni directory in the project directory, and inside there you can place the shared libraries you want to bundle into your APK under specific abi directories. For example:


So far, this only works in application modules, not library modules.