Swati
Swati

Reputation: 429

How to add .aar dependency in library module?

I am having one .aar file of one library module.
I want to use it as a library or dependency in my other project's library module.
How do I do it?

I tried options provided at below links:
http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project/

It works only if I add .aar reference in my project's application module. But not working in library module.

Thanks.

Upvotes: 39

Views: 39159

Answers (7)

Dan G Nelson
Dan G Nelson

Reputation: 932

Under dependencies in the module's build.gradle add the associated .aar files with

compileOnly files('libs/api-release.aar')

And then in the importing project's app/build.gradle add the .aar files with

implementation files('../../node_modules/react-native-misnap/android/libs/api-release.aar')

Upvotes: 0

Abhijith Brumal
Abhijith Brumal

Reputation: 1772

The easiest way will be to copy your aar file to the library module's libs folder. and in the app level build.gradle implement the dependency like below

implementation files('libs/aar_file_name.aar')

Upvotes: 0

Nouman Ch
Nouman Ch

Reputation: 4121

Sorry process involves 10 steps but these are super simple and easy.

1- New->Module

enter image description here

2- Select import .jar/aar package

enter image description here

3- Select your .aar file from location

enter image description here

4- We can see module is added but not configured with app module yet.

enter image description here

5- Go to Project Structure

enter image description here

6- Current project structure is like this one

enter image description here

7- Go to app module and press '+' icon

enter image description here

8- Select 3rd option Module dependency

enter image description here

9- Select newly added .arr module

enter image description here

10- you can see the new module attached with app module. Now click apply.

enter image description here

you can see we are good to go. enter image description here

Upvotes: 9

Someone Somewhere
Someone Somewhere

Reputation: 23787

I did it a bit differently than others have posted here...

My main goal was to create a library module that contained all the jar's and aar's that I would need. My main project would then depend on this library module - I only wanted a single line in the main project's build.gradle to link this dependency.

  1. Add a new library module to the project: File -> New -> New Module -> Android Library

  2. within the library module, open the build.gradle and add:

// so that the library project can locate the aar in /libs
repositories {
    flatDir {
        dirs 'libs'
    }
}

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

now you can pop all the jar's and aar's into the /libs folder of your library module. Bonus: whatever the library name is doesn't matter, it's automatically discovered

Upvotes: 5

Linh
Linh

Reputation: 60923

Follow this setting and you will able to add .aar dependency to library module

build.gradle (Project: ....)

allprojects {
    repositories {
        jcenter()
        mavenCentral()
        flatDir {
            dirs 'libs'
            dirs project(':library_module').file('libs')
        }
    }
}

build.gradle (Module: app)

dependencies {
    ...
    compile project(':library_module')
}

build.gradle (Module: library_module)

dependencies {
    ...
    compile(name:'aar_file_name', ext:'aar')
}

settings.gradle (Project Settings)

include ':app', ':library_module'

Upvotes: 71

Young
Young

Reputation: 41

  1. File -> New Module -> Import .JAR/.AAR
  2. import the .AAR file.
  3. in library module build.gradle add the dependency dependencies{compile project(':Name-Of-Your-Module-aar')}

http://tools.android.com/tech-docs/new-build-system/tips#TOC-Handling-transitive-dependencies-for-local-artifacts-jars-and-aar-

Upvotes: 4

Gabriele Mariotti
Gabriele Mariotti

Reputation: 363815

In all modules (library or application) where you need the aar file you have to add in your build.gradle the repository:

repositories {
    flatDir {
        dirs 'libs'
    }
}

and add the dependency:

dependencies {
   compile(name:'nameOfYourAARFileWithoutExtension', ext:'aar')
 }

You can use the top-level file to add the repositories, but you can't add the dependencies in the top-level file.
Pay attention to the relative path of the libs folder that you are using in the module.

Upvotes: 15

Related Questions