Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.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
如何使用gradle Android插件向构建变量添加特定的包后缀(或包名称)_Android_Android Gradle Plugin - Fatal编程技术网

如何使用gradle Android插件向构建变量添加特定的包后缀(或包名称)

如何使用gradle Android插件向构建变量添加特定的包后缀(或包名称),android,android-gradle-plugin,Android,Android Gradle Plugin,是否可以将特定的包名(applicationId)设置为生成变量?(风味+构建类型) 例如,我想在变体的包名中添加“.beta”,该变体可能是“flavor7Beta”,但不是其他类型的“flavor7”或其他类型的“beta” 我试过了 beta { ... applicationVariants.all { variant -> println "variant: ${variant.name}"

是否可以将特定的包名(applicationId)设置为生成变量?(风味+构建类型)

例如,我想在变体的包名中添加“.beta”,该变体可能是“flavor7Beta”,但不是其他类型的“flavor7”或其他类型的“beta”

我试过了

beta {
            ...
            applicationVariants.all { variant ->
                println "variant: ${variant.name}"
                if(variant.name == "flavor7Beta") {
                    variant.applicationId = "com.domain.myapp.beta"
                }
            }
        }
但是我有


错误:(172,0)无法在com.android.build.gradle.internal.api.ApplicationVariatimpl上设置只读属性“applicationId”的值_Decorated@3cdafe1e.您应该使用反射

android.variantFilter { variant -> 
    def config = variant.getDefaultConfig();
    def field = config.getClass().getDeclaredField('productFlavor');
    field.setAccessible(true);
    field.get(config).applicationId "com.example"
}

我使用的是android插件版本0.14.2,我更新到了0.14.4,有同样的问题,但是使用variant.applicationId和variant.applicationIdSuffix,两者都返回applicationId是只读的,所以不是1.0.0-rc1。我必须指定要更改的变量,我尝试了这个方法,但没有效果