Search code examples
androidbuildgradleandroid-studio

Use different build types of Library Module in Android App Module in Android Studio and Gradle


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. Currently, in our ant scripts we replace text in a few of our classes before compiling depending on if the build is for debug purposes, QA, Beta/Customer Acceptance testing or meant for release to Google Play.

I want to take advantage of the build variant system in Gradle and use value resources (booleans, strings, etc) to keep from having the build script replace text in my classes.

Since duplicating the different values for all of the build types in all of my app products would be a maintenance headache, I want to put them in the build types in my common library. I tried this but no matter which build type I use in my app modules, the app module pulls in the Release build of the common library module.

Is there any way that I can get the different build types of the app modules to use the corresponding build type of the library module?

This was run from Android Studio with the Build Variants tool window showing both modules as using the debug variant. The image should read debug for both app and library.

debug debug


Solution

  • Well, Gradle Android plugin simply can't build the debug version of dependent library modules. This is a well-known, old issue and this is not resolved yet.
    You can try to use some workarounds from the discussion I mentioned, specifically take a look at posts #35 and #38.