如何定义多个常见来源

时间:2016-07-14 19:09:59

标签: android build.gradle

我想用gradle

创建以下项目结构
FlavorA
     java
        sources
FlavorB
     java
        sources
FlavorC
     java
        sources
main
     java
        sources
commonCodeWithFlavorAAndB
      java
        sources
commonCodeWithFlavorAAndC
      java
        sources

现在我创建了这个项目结构,并在build.gradle中定义了sourceSet srcDirs

但是,当我尝试运行flavorA时,它表示缺少来自commonCodeWithFlavorAAndC的类来运行A

我该如何解决?

2 个答案:

答案 0 :(得分:1)

当你创造不同的口味时,它有两个方面来处理

  1. res文件夹

  2. java文件

    • 使用res文件夹,你可以在main,FlavorA中实际拥有相同的文件,... Android会自动合并它。

    • 使用java文件时,不能合并这些类。它只能被替换。

  3. 为了更好地理解,请参阅此内容

    https://stackoverflow.com/a/23710180/1852441

    IE中。为了覆盖名为Activity1.java的类(例如),您必须将其从主文件夹中删除,并为每个风格提供Activity1.java。

    这就是为什么编译器说它缺少一个类。

答案 1 :(得分:0)

问题是由重构错误引起的。 当我将文件拆分为不同的实现时,由于某种原因,它更改了FlavorAAndC文件夹中给定文件的包名称, 即使它在同一条道路上folderx/foldery/file "包装"的顶线说" folderx.foldery.folderz?!.file"