Android 口味:每个口味有多个 java 和 src 目录
Android Flavors : Multiple java and src directories for each flavor
任何人都可以向我解释如何在我的每种口味中使用更多的主目录和特定口味的 java/src 目录吗?我的目标是让目录被不止一种风味使用,但不是全部。
例如我有 3 种口味:A1、A2 和 B。
- 全部使用main/src(默认主src目录)
- A1 使用A1/src(默认风味源目录)
- A2 使用 A2/src(默认 flavor src 目录)
- B 使用 B/src(默认 flavor src 目录)
- A1和A2使用A/src("special"共享目录)
这可能吗?如果是这样,我应该在 build.gradle 文件中放入什么?
作为奖励问题,我可以选择 gradle 在我的不同目录中查找文件的顺序吗?
例如,如果我在 A/src 和 A1/src 中都声明了 a.png,我可以告诉 gradle 先在 A/src 中查找这个文件吗, 只有在没有找到的情况下才在 A1/src ?
中查找
如描述的那样here
As mentioned above, each sourceSet can define multiple resource folders.
您可以定义多个资源文件夹。例如这样的事情:
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')
}
}
}
任何人都可以向我解释如何在我的每种口味中使用更多的主目录和特定口味的 java/src 目录吗?我的目标是让目录被不止一种风味使用,但不是全部。
例如我有 3 种口味:A1、A2 和 B。
- 全部使用main/src(默认主src目录)
- A1 使用A1/src(默认风味源目录)
- A2 使用 A2/src(默认 flavor src 目录)
- B 使用 B/src(默认 flavor src 目录)
- A1和A2使用A/src("special"共享目录)
这可能吗?如果是这样,我应该在 build.gradle 文件中放入什么?
作为奖励问题,我可以选择 gradle 在我的不同目录中查找文件的顺序吗?
例如,如果我在 A/src 和 A1/src 中都声明了 a.png,我可以告诉 gradle 先在 A/src 中查找这个文件吗, 只有在没有找到的情况下才在 A1/src ?
中查找如描述的那样here
As mentioned above, each sourceSet can define multiple resource folders.
您可以定义多个资源文件夹。例如这样的事情:
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')
}
}
}