pulancheck1988
pulancheck1988

Reputation: 2064

How can I export an Android library as .aar & keep my Gradle dependencies?

I have an Android module from which I export an .aar file. I imported this .aar with Android Studio Wizard, project compiles, but crashes at runtime with "java.lang.NoClassDefFoundError". I checked with debugger, Class.forName("retrofit2.Retrofit").. not found.

After unzipping the .aar & checking the classes.jar, I see only my packages, clearly it didn't packaged the libraries I was referencing in build.gradle (ex: Okhttp, Retrofit, Gson.. ).

What I want is a way to keep my build.gradle dependencies. I would prefer it to be packaged into the .aar if possible, else what is the option? Force the client to add in his own gradle my dependencies?

Extra info: I only have gradle dependencies, no jars.

Upvotes: 1

Views: 1280

Answers (1)

CommonsWare
CommonsWare

Reputation: 1007584

Distribute the AAR via an artifact repository. The metadata in the artifact repository (e.g., the POM file) will contain the information about your transitive dependencies. It also will have information about the version of your AAR, so that consumers of the AARs have clear information about what version they are using. This is how nearly everything else that you are using is distributed: support libraries, Retrofit, etc.

Upvotes: 2

Related Questions