您可以为每种口味定义不同的构建配置字段或不同的资源值(例如字符串值),例如(根据Google的gradle技巧和食谱),例如
android {
...
buildTypes {
release {
buildConfigField("String", "BUILD_TIME", "\"${minutesSinceEpoch}\"")
resValue("string", "build_time", "${minutesSinceEpoch}")
...
}
debug {
buildConfigField("String", "BUILD_TIME", "\"0\"")
resValue("string", "build_time", "0")
}
}
}
所以在这种情况下
productFlavors {
normal {
dimension "access"
buildConfigField("boolean", "IS_ADMIN", "false")
}
admin {
dimension "access"
buildConfigField("boolean", "IS_ADMIN", "true")
}
}
然后像
if (BuildConfig.IS_ADMIN) {
...
} else {
...
}
或者只是针对不同的口味使用不同的字符串值,则可以使用不同的字符串来完成操作,resValues
那么您甚至不需要if/then