我在我的项目中构建了2种口味,这些口味有一些共同的代码。这曾经很好用,但在android studio和gradle的最新版本中,我收到了这个错误。
SourceSets 'seta' and 'main' use the same file/folder for 'java': .../src/main/java
这就是我在gradle.build中所拥有的
productFlavors {
seta {
packageName "com.test.seta"
versionCode 4
versionName "2.0"
}
setb {
packageName "com.test.setb"
versionCode 2
versionName "1.6"
}
}
sourceSets {
seta {
java.srcDirs = ['src/main/java', 'src/seta/java']
res.srcDirs = ['src/main/res', 'src/seta/res']
assets.srcDirs = ['src/main/assets', 'src/seta/assets']
}
setb {
java.srcDirs = ['src/main/java', 'src/setb/java']
res.srcDirs = ['src/main/res', 'src/setb/res']
assets.srcDirs = ['src/main/assets', 'src/setb/assets']
}
}
答案 0 :(得分:2)
在单个flavor的sourceSet中,您不需要指定主要的sourceSet。您可以将常用代码放在 src / main 中,然后将其拾取而无需从其他版本中明确引用它。
我以前不确定它是如何运作的。
如果你删除它,你实际上根本不需要你的sourceSets
块 - 默认行为是将公共代码放在 src / main 和flavor- src / flavor-name 中的特定代码,就像您已经设置的一样。