我正在寻找一种动态包含口味的方法
为此,我尝试包含带有属性的子项目来配置主 Android 项目。
这是我的例子:
app
|-> src
| |-> flavor
| |-> build.gradle
|-> build.gradle
|-> settings.gradle
应用程序/settings.gradle
include ':src:flavor'
应用程序/src/flavor/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"
}
}
}
}
}
这看起来很神奇..但它不起作用!
因为在 gradle 检查子项目之前配置了 Android,并且 flavor.ext.isFlavor 还不存在。
如果我使用配置注入(inject),Android 会吐我不敢的口水!
Android tasks have already been created
我在 stackoverflow 上读到我必须在我的 rootProject 中创建我的属性并在每个子项目中配置 Android。
但在我的情况下,子项目不是项目而是口味..
有谁知道在子项目中配置属性并在 rootProject 中使用它们?
我在
apply from:
附近搜索现在功能..P.S:这是我的主线程和其他解决方案:Gradle dynamic flavor
最佳答案
我只是使用了条件和apply from:
强制生命周期应用我的值(value)观:
if (new File(project(":app").getProjectDir().getPath() + "/flavors.gradle").exists()) {
apply from: "flavors.gradle"
}
关于android - 生命周期 Android 插件 gradle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31380498/