Android Flavors:每种风味的多个java和src目录

任何人都可以向我解释我如何使用我的每种口味更多,然后只是主要和味道特定的java / src目录? 我的目标是让目录由多种口味使用但不是全部。

例如,我有3种口味:A1,A2和B.

  • 所有的好处都使用main / src(默认的主src目录)
  • A1使用A1 / src(默认的flavor src目录)
  • A2使用A2 / src(默认flavor src目录)
  • B使用B / src(默认的flavor src目录)
  • A1和A2使用A / src(“特殊”共享目录)

这可能吗 ? 如果是这样,我应该在build.gradle文件中添加什么?

作为一个额外的问题,我可以选择gradle在哪个顺序寻找不同目录中的文件?

例如,如果我在A / src和A1 / src中都声明了a.png,我是否可以告诉gradle首先在A / src中查找此文件,并且只有在找不到任何内容时才在A1 / src中查找它?

如此处所述

如上所述,每个sourceSet都可以定义多个资源文件夹。

您可以定义多个资源文件夹。 例如这样的事情:

android { ... sourceSets { main { //.... res.srcDirs = ['/src/main/res'] } flavorA1 { res.srcDirs = ['/src/flavor1/res', '/src/commonA/res'] } flavorA2 { res.srcDirs = ['/src/flavor2/res', '/src/commonA/res'] } //.....other flavors } } 

我发现设置java源文件需要稍微不同的格式

 sourceSets { favorA1 { java { srcDirs('src/favorA1/java/src', 'src/commonA/java/src') } } favorA2 { java { srcDirs('src/favorA2/java/src', 'src/commonA/java/src') } } } 

Gradle Java
Gradle Source Api