Ste*_*lis 56 android build android-gradle-plugin
我正在尝试使用构建口味.在我的build.gradle中,我定义了两种口味,一种正常的味道和一种管理风味.
基本上,admin flavor在主活动上有一个额外的按钮.
我知道我可以为不同的风格定义不同的包/类.但有没有办法根据风味添加/删除一段代码?
基本上我需要两个版本的Activity.但我不想要两个完整不同版本的活动并维护它们.
所以在我的活动中我想做
=> gradle检查味道是否为'admin'=>如果是,则添加该按钮的代码
这可能吗?或者您是否需要两种不同的物理活动,因此在您之后添加功能时可以维护它们.
mix*_*xel 100
BuildConfig.FLAVOR为您提供组合的产品风味.因此,如果您只有一个风味维度:
productFlavors {
normal {
}
admin {
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以检查一下:
if (BuildConfig.FLAVOR.equals("admin")) {
...
}
Run Code Online (Sandbox Code Playgroud)
但是如果你有多个风味尺寸:
flavorDimensions "access", "color"
productFlavors {
normal {
dimension "access"
}
admin {
dimension "access"
}
red {
dimension "color"
}
blue {
dimension "color"
}
}
Run Code Online (Sandbox Code Playgroud)
也有BuildConfig.FLAVOR_access和BuildConfig.FLAVOR_color领域,所以你应该看看这样的:
if (BuildConfig.FLAVOR_access.equals("admin")) {
...
}
Run Code Online (Sandbox Code Playgroud)
并BuildConfig.FLAVOR包含完整的风味名称.例如,adminBlue.
use*_*850 58
要避免条件中的纯字符串,可以定义布尔属性:
productFlavors {
normal {
flavorDimension "access"
buildConfigField 'boolean', 'IS_ADMIN', 'false'
}
admin {
flavorDimension "access"
buildConfigField 'boolean', 'IS_ADMIN', 'true'
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样使用它:
if (BuildConfig.IS_ADMIN) {
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22713 次 |
| 最近记录: |