Android 使用Gradle任务将productFlavor值写入文件
我正在建立一个Android项目来支持白色标签。作为此设置的一部分,我需要将品牌信息(原色等)写入文件。为了将其集成到构建过程中,我尝试编写一个Gradle任务来自动完成这项工作。在Android 使用Gradle任务将productFlavor值写入文件,android,gradle,Android,Gradle,我正在建立一个Android项目来支持白色标签。作为此设置的一部分,我需要将品牌信息(原色等)写入文件。为了将其集成到构建过程中,我尝试编写一个Gradle任务来自动完成这项工作。在app.gradle文件中,我指定了每种产品的口味和特定值: productFlavors { flavorA { dimension 'default' applicationId "com.myapp.flavora" resValue "string",
app.gradle
文件中,我指定了每种产品的口味和特定值:
productFlavors {
flavorA {
dimension 'default'
applicationId "com.myapp.flavora"
resValue "string", "app_name", "Flavor A"
resValue "string", "primary_color", "#363636"
}
...
}
然后我有一个Gradle任务要写入文件:
task copyGlobals {
println "COPY GLOBALS"
project.file('../globals.js') << 'hello world'
}
task copyGlobals{
println“复制全局”
project.file('../globals.js')要访问产品风格,需要迭代所有应用程序变体:
android.applicationVariants.all { com.android.build.gradle.api.ApplicationVariant variant ->
// Here you can check concrete flavor, for example:
if (variant.flavorName == "flavorA") {
// Here you need to iterate all resValues of your variant
variant.mergedFlavor.resValues.each { String key, com.android.builder.model.ClassField field ->
// field.name - is name of your resValue, for example, "primary_color"
// field.value - is value of your resValue, for example, "#363636"
println "Name = ${field.name} Value = ${field.value}"
// Also you can get your value through String key.
println "Value = $key"
}
}
}