Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用Gradle任务将productFlavor值写入文件_Android_Gradle - Fatal编程技术网

Android 使用Gradle任务将productFlavor值写入文件

Android 使用Gradle任务将productFlavor值写入文件,android,gradle,Android,Gradle,我正在建立一个Android项目来支持白色标签。作为此设置的一部分,我需要将品牌信息(原色等)写入文件。为了将其集成到构建过程中,我尝试编写一个Gradle任务来自动完成这项工作。在app.gradle文件中,我指定了每种产品的口味和特定值: productFlavors { flavorA { dimension 'default' applicationId "com.myapp.flavora" resValue "string",

我正在建立一个Android项目来支持白色标签。作为此设置的一部分,我需要将品牌信息(原色等)写入文件。为了将其集成到构建过程中,我尝试编写一个Gradle任务来自动完成这项工作。在
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"
        }
    }
}