【问题标题】:Android studio SourceSets error: same file/folderAndroid Studio SourceSets错误:相同的文件/文件夹
【发布时间】:2014-03-24 16:47:24
【问题描述】:

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

}

【问题讨论】:

  • 使用风味维度。像魔术一样工作!
  • 寻找android studio风味演示goo.gl/5NSnEM

标签: android android-studio android-productflavors source-sets


【解决方案1】:

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

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

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

【讨论】:

  • 这也适用于图书馆项目吗?我遇到了一个问题,在为库项目定义风格时会导致主应用程序不从库项目中获取资源。我使用的是“规范”目录结构。
  • @andreimarinescu,我建议您开始一个新问题,详细了解您在做什么。
  • 嗨,Scott,我的库 gradle 文件中缺少 defaultPublishConfig“风味”和 publishNonDefault true 语句。还是谢谢!
  • @ScottBarta 是否可以在 android studio 中拥有没有应用程序模块文件夹的 android 项目?这是我的问题 - stackoverflow.com/questions/33755292/…
  • @ScottBarta 我已经删除了 app 文件夹并在 android studio 中创建了类似 Eclipse 的文件夹结构,但我坚持构建 gradle,因为我现在没有获得 Sync Gradle 选项..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-01
  • 2018-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多