I have a workspace containing several different apps and a common library project that I am looking to convert from Eclipse to Android Studio and from Ant to Gradle. Curren
Update: publishNonDefault
is deprecated and has no effect anymore. All variants are now published.
Documentation taken from Library Publication chapter in Gradle Plugin User Guide.
By default a library only publishes its release variant. This variant will be used by all projects referencing the library, no matter which variant they build themselves. This is a temporary limitation due to Gradle limitations that we are working towards removing.
Anyway, there are solutions for this problem.
Publish All - It is possible to publish all build variants of your library project by adding following line to your library project:
android {
publishNonDefault true
}
Then you should modify your dependencies in app project as follows:
dependencies {
releaseCompile project(path: ':yourLibrary', configuration: 'release')
debugCompile project(path: ':yourLibrary', configuration: 'debug')
// This is also possible
customCompile project(path: ':yourLibrary', configuration: 'custom')
}
Change Default - You can change which varaint gets published from your library by adding following line to your library project:
android {
defaultPublishConfig "debug"
}
And in this case you don't have to change app's dependencies because it will always get debug
build variant.