Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Dependency error when using aar library

I have a module with a .aar file in libs folder. I used the solution posted here [1]: http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project/ to add the .aar file as dependency and was able to compile the module properly.

Now I want to use this module as a dependency to the main module in my project and compile. However when i try to compile, i do see an error which says that gradle was not able to find the particular .aar file. why would my main module not find a file which is in the libs folder of my sub module. Was wondering if anyone came across this issue.

my project structure is like this

--mainmodule
  --build.gradle (submodule as a dependency)
--submodule
   --libs
      -- abc.aar

Here is the error gradle throws: When unzipping library ':abc:, either group, name or version is empty

like image 326
praveen_85 Avatar asked Sep 11 '15 22:09

praveen_85


People also ask

Where is the AAR file in Android Studio?

Add your AAR or JAR as a dependency Navigate to File > Project Structure > Dependencies. In the Declared Dependencies tab, click and select Jar Dependency in the dropdown. In the Add Jar/Aar Dependency dialog, first enter the path to your . aar or .

What is compileOnly in gradle?

compileOnly. Gradle adds the dependency to the compile classpath only (that is, it is not added to the build output). This is useful when you're creating an Android module and you need the dependency during compilation, but it's optional to have it present at runtime.


1 Answers

If I understand your problem right and you've followed the steps described in the link you shared, then adding this to your mainmodule's build.gradle should do the job:

flatDir {
    dirs "../submodule/libs"
}

You basically have the same issue that you fixed in your submodule, since the mainmodule is struggling to resolve transitive dependencies (abc.aar) of submodule.

Recommended way:

While the answer above should fix your issue, Android Studio supports a better way to do this. Import a local aar file via the File>New>New Module>Import .JAR/.AAR Package option in Android Studio v1.3+. You can then have your submodule depend on that aar-module as follows:

dependencies {
    compile project(':aar-module')
}
like image 66
unbekant Avatar answered Sep 22 '22 06:09

unbekant