Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to include JAR dependency into an AAR library

People also ask

What is an AAR file?

An AAR file contains a software library used for developing Android apps. It is structurally similar to an . APK file (Android Package), but it allows a developer to store a reusable component that can be used across multiple different apps.

How do I open an AAR file?

In android studio, open the Project Files view. Find the . aar file and double click, choose "arhcive" from the 'open with' list that pops up. This will open a window in android studio with all the files, including the classes, manifest, etc.


You can add this task:

task copyLibs(type: Copy) {
    from configurations.compile
    into 'libs'
}

Dependencies will be downloaded from your Nexus, but when you need package the library, execute this task first and jar files will be copied and included inside final aar.


By default, AAR does not include any dependencies. Solution mentioned by @Hector should work for gradle plugin < 3.0. For Gradle plugin 3.0+, try custom config as mentioned here.

android { ... }

// Add a new configuration to hold your dependencies
configurations {
    myConfig
}

dependencies {
    ....
    myConfig 'com.android.support:appcompat-v7:26.1.0'
    myConfig 'com.android.support:support-v4:26.1.0'
    ...
}

task copyLibs(type: Copy) {
    from configurations.myConfig 
    into "libs"
}

None of the suggestions helped me for Gradle 4.6, so I wasted the whole day inventing my own.

Eventually I found a good Gist and modified it for my version of Gradle: https://gist.github.com/stepio/824ef073447eb8d8d654f22d73f9f30b


The upper ones didn't work for me in android tools 3.6.2 with Gradle. 5.6.1 . For anyone having the same issue, using https://github.com/kezong/fat-aar-android in the end worked fine for me.