Update module created from local aar

Raphael Royer-Rivard picture Raphael Royer-Rivard · Jan 20, 2015 · Viewed 7.6k times · Source

Here is my setup : I have an android library that creates an aar when exported and I have an android app that uses the library as a module (it's the only way to import a local aar file).

To import the aar file as a module in my android app, I click on File -> New Module... -> Import .JAR or .AAR Package and I choose my exported aar file. After that I only need to add a compile project line in my gradle file to be able to use my library.

I update very often my library because I am currently developing it and I want to test it frequently. The problem is that I don't know how to update the module in my android app project...

What I am doing now is that I issue a gradlew assembleRelease in my android library project to create the new aar file, then in my android app project I delete the module in the Module Settings (or Project Structure) window, I delete the module folder at the root of my project and then I import it again. This whole operation takes around 3 minutes each time I want to test my library and I am tired of this. Do you know if there is a faster way of updating an android module created from an aar file?

Answer

Raphael Royer-Rivard picture Raphael Royer-Rivard · Jan 20, 2015

I thought that importing a aar file as a module was the only solution to include a local aar file, but it seems that it can be done easily by simulating a repository with a flat directory.

In your project gradle file in the allprojects.repositories tag, add the following :

flatDir {
    dirs 'libs'
}

In your app module, make sure you have a libs folder with the aar file in it. Then add the compile line in the dependencies tag of your app module gradle file.

dependencies {
    compile 'package:name:version@aar'
}

Now, when you update the aar file in your libs directory, your app will use the updated version of your library.

Note:

  • In compile 'package:name:version@aar', name is physical file name of the library. For example lib-debug or lib-release etc.
  • version and package can be found in AndroidManifest.xml inside .aar file. (How to open .aar file?)