Android studio源集错误:相同的文件/文件夹

Android studio源集错误:相同的文件/文件夹,android,android-studio,android-productflavors,source-sets,Android,Android Studio,Android Productflavors,Source Sets,我正在我的项目中构建2种风格,这些风格有一些共同的代码。这过去工作得很好,但在最新版本的android studio和gradle中,我遇到了这个错误 SourceSets 'seta' and 'main' use the same file/folder for 'java': .../src/main/java 这就是我在gradle的产品 productFlavors { seta { packageName "com.test.seta" ve

我正在我的项目中构建2种风格,这些风格有一些共同的代码。这过去工作得很好,但在最新版本的android studio和gradle中,我遇到了这个错误

SourceSets 'seta' and 'main' use the same file/folder for 'java': .../src/main/java
这就是我在gradle的产品

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']
    }

}

在单个flavor的源集中,不需要指定主源集。您可以将公共代码放在src/main中,无需从其他版本显式引用它即可获取

我不确定它以前是怎么工作的


如果删除它,实际上根本不需要
sourceset
块——默认行为是将公共代码放在src/main中,将特定于味道的代码放在src/flavor名称中,就像您已经设置好的那样。

这是否也适用于库项目?我遇到一个问题,当为库项目定义一个风格时,会导致主应用程序无法从库项目中获取资源。我使用的是“规范”目录结构。@andreimarinescu,我建议你开始一个新问题,详细介绍你正在做什么。嗨,Scott,我的库gradle文件中缺少defaultPublishConfig“flavor”和PublishNonfault true语句。无论如何谢谢你@ScottBarta在android studio中有没有可能没有应用程序模块文件夹的android项目?这是我的问题-@ScottBarta我已经删除了应用程序文件夹,并在android studio中创建了类似Eclipse的文件夹结构,但我仍然坚持构建gradle,因为我现在没有同步gradle选项。使用FavorDimensions。工作就像魔术!正在寻找android studio Favors演示版