0

我在我的项目中构建了 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']
    }

}
4

1 回答 1

2

在单个风味的 sourceSet 中,您不需要指定主要的 sourceSet。您可以将通用代码放在src/main中,它会被拾取,而无需从其他风格中显式引用它。

我不确定它以前是如何工作的。

如果你删除它,你实际上根本不需要你的sourceSets块——默认行为是将通用代码放在src/main中,将特定于风味的代码放在src/ flavor-name中,就像你已经设置它一样.

于 2014-03-24T19:15:37.773 回答