我正在寻找一种动态包含风味的方法
为此,我尝试包含具有属性的子项目来配置主Android项目。 这是我的例子:
app
|-> src
| |-> flavor
| |-> build.gradle
|-> build.gradle
|-> settings.gradle
应用程序/ settings.gradle
include ':src:flavor'
应用程序/ SRC /香料/的build.gradle
ext {
isFlavor = true
}
应用程序/的build.gradle
...
android {
...
productFlavors {
getAllprojects().each { project ->
if (project.ext.has("isFlavor")) {
def name = project.getName()
"$name" {
applicationId "com.example.app.$name"
}
}
}
}
}
这看起来很神奇......但它不起作用! 因为Android是在gradle检查之前配置的,所以子项目和flavor.ext.isFlavor尚不存在。 如果我使用配置注入,Android吐在我的脸上,我不敢!
Android tasks have already been created
我已经阅读了stackoverflow,我必须在我的rootProject中创建我的属性并在每个子项目中配置Android。
但在我看来,子项目不是项目,而是风味..
有没有人有想法在子项目中配置属性并在rootProject中使用它们?
我现在在apply from:
功能附近搜索..
P.S:这是我的另一个解决方案的主线程:Gradle dynamic flavor
答案 0 :(得分:0)
我刚使用条件和apply from:
强制生命周期应用我的值:
if (new File(project(":app").getProjectDir().getPath() + "/flavors.gradle").exists()) {
apply from: "flavors.gradle"
}