我已将产品Flavors放入另一个名为other.gradle的文件中,它看起来像这样:
project.ext.myflavors = {
mock {
applicationId "com.mysite.mock"
}
}
我能够成功访问build.gradle文件中的闭包,如下所示:
myflavors()
但我得到一个错误,模拟方法没有定义.
Error:Gradle DSL method not found: 'mock()'
有没有办法只从另一个文件定义代码并将代码本身导入构建文件?或者我如何从其他文件导入风味?
解决方法:
多次访问productFlavors非常好.因此,在构建脚本包含的脚本中添加部分或全部样式将起作用.
创建一个Gradle脚本,其中包含决定应添加哪些flavor的逻辑:
if (someCondition()) {
android {
productFlavors {
one {
applicationId = 'com.example.oneapp'
}
}
}
} else {
android {
productFlavors {
two {
applicationId = 'com.example.twoapp'
}
}
}
}
现在,在构建脚本中包含此脚本.如果将它放在根项目的(子文件夹)下,则可以轻松地重用脚本.例如:
apply from: rootProject.file('build-scripts/flavor-picker.gradle')
请注意,您的IDE可能不会注意到flavor选择脚本或gradle.properties的更改,因此如果您对它们进行更改,则可能必须手动重新导入Gradle文件以查看正确的可用任务集.
标签:android,gradle,build-gradle
来源: https://codeday.me/bug/20190611/1222100.html