I have a requirement to remove a specific res folder from a flavour.
sourceSets {
main {
manifest.srcFile \'AndroidManifest.xml\'
java.sr
You could try using splits.
Example (Right from the android SDK webpage):
android {
...
splits {
// Configures multiple APKs based on screen density.
density {
// Configures multiple APKs based on screen density.
enable true
// Specifies a list of screen densities Gradle should not create multiple APKs for. Here you should add all the densities except MDPI.
exclude "ldpi", "xxhdpi", "xxxhdpi"
// Specifies a list of compatible screen size settings for the manifest.
compatibleScreens 'small', 'normal', 'large', 'xlarge'
}
}
}
If that does not work, you could separate your res/MDPI and the rest of the res/Density folders into two separate modules (let's call them, layoutMdpi and layoutAll). Both modules need to have the same package name so their R classes are identical and interchangeable (essentially the same that happens between different versions of the android SDK). Then, create at least two specific dependency configurations for your flavors, one for the ones who should use MDPI, and one for those who should not.
configurations {
mdpiCompile
allCompile
}
dependencies {
...
mdpiCompile project(':layoutMdpi')
allCompile project(':layoutAll')
}
And then, since MDPI resources aren't present in layoutAll, you are good to go.