我想用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
我该如何解决?
答案 0 :(得分:1)
当你创造不同的口味时,它有两个方面来处理
res文件夹
java文件
使用res文件夹,你可以在main,FlavorA中实际拥有相同的文件,... Android会自动合并它。
使用java文件时,不能合并这些类。它只能被替换。
为了更好地理解,请参阅此内容
https://stackoverflow.com/a/23710180/1852441
IE中。为了覆盖名为Activity1.java的类(例如),您必须将其从主文件夹中删除,并为每个风格提供Activity1.java。
这就是为什么编译器说它缺少一个类。
答案 1 :(得分:0)
问题是由重构错误引起的。
当我将文件拆分为不同的实现时,由于某种原因,它更改了FlavorAAndC文件夹中给定文件的包名称,
即使它在同一条道路上folderx/foldery/file
"包装"的顶线说" folderx.foldery.folderz?!.file
"