如何使用gradle Android插件向构建变量添加特定的包后缀(或包名称)
是否可以将特定的包名(applicationId)设置为生成变量?(风味+构建类型) 例如,我想在变体的包名中添加“.beta”,该变体可能是“flavor7Beta”,但不是其他类型的“flavor7”或其他类型的“beta” 我试过了如何使用gradle Android插件向构建变量添加特定的包后缀(或包名称),android,android-gradle-plugin,Android,Android Gradle Plugin,是否可以将特定的包名(applicationId)设置为生成变量?(风味+构建类型) 例如,我想在变体的包名中添加“.beta”,该变体可能是“flavor7Beta”,但不是其他类型的“flavor7”或其他类型的“beta” 我试过了 beta { ... applicationVariants.all { variant -> println "variant: ${variant.name}"
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。我必须指定要更改的变量,我尝试了这个方法,但没有效果