是否可以将特定的包名称(applicationId)设置为 Build Variant? ( flavor + 构建类型)
例如,我想将“.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.ApplicationVariantImpl_Decorated@3cdafe1e 上设置只读属性“applicationId”的值。
最佳答案
你应该使用反射。
android.variantFilter { variant ->
def config = variant.getDefaultConfig();
def field = config.getClass().getDeclaredField('productFlavor');
field.setAccessible(true);
field.get(config).applicationId "com.example"
}
关于android - 如何使用 gradle Android 插件将特定包后缀(或包名称)添加到 Build Variant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27109914/