我正在尝试使用构建风格.在我的 build.gradle 中,我定义了 2 种风味,一种是普通风味,一种是管理员风味.
I'm trying to work with build flavors. In my build.gradle I've defined 2 flavors, a normal flavor and an admin flavor.
基本上,admin 风格在主 Activity 上有一个额外的按钮.
Basicly, the admin flavor has an extra button on the main activity.
我知道我可以为不同的风格定义不同的包/类.但是有没有办法根据风格制作一种 if 案例来添加/删除一段代码?
I understand that I can define different packages/classes for different flavors. But is there a way to make a sort of if case to add/remove a piece of code depending on the flavor?
基本上,我需要一个 Activity 的两个版本.但我不想要两个完全不同版本的活动并维护它们.
Basicly, I would need two versions of an Activity. But I don't want two entire different versions of the activity and maintain them.
所以在我的活动中我想做的事
So in my activity I would like to do
=>gradle 检查风味是否为 'admin'
=> gradle check if flavor is 'admin'
=>如果是,请添加此按钮代码
=> if yes, add this code of the button
这可能吗?或者您是否需要两种不同的身体活动,从而在您之后添加功能时同时维护它们.
Is this possible? Or would you need two different physical activities and thus maintain both of them when you add functionality afterwards.
BuildConfig.FLAVOR 为您提供组合产品风味.因此,如果您只有一个风味维度:
BuildConfig.FLAVOR gives you combined product flavor.
So if you have only one flavor dimension:
productFlavors {
normal {
}
admin {
}
}
然后你就可以检查它了:
Then you can just check it:
if (BuildConfig.FLAVOR.equals("admin")) {
...
}
但如果你有多个风味维度:
But if you have multiple flavor dimensions:
flavorDimensions "access", "color"
productFlavors {
normal {
dimension "access"
}
admin {
dimension "access"
}
red {
dimension "color"
}
blue {
dimension "color"
}
}
还有 BuildConfig.FLAVOR_access 和 BuildConfig.FLAVOR_color 字段,因此您应该像这样检查它:
there are also BuildConfig.FLAVOR_access and BuildConfig.FLAVOR_color fields so you should check it like this:
if (BuildConfig.FLAVOR_access.equals("admin")) {
...
}
并且 BuildConfig.FLAVOR 包含完整的风味名称.例如,adminBlue.
And BuildConfig.FLAVOR contains full flavor name. For example, adminBlue.
这篇关于Android 在代码中使用 Gradle Build 风格,例如 if 案例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
更新到 Android Build Tools 25.1.6 GCM/FCM 后出现 IncompIncompatibleClassChangeError after updating to Android Build Tools 25.1.6 GCM / FCM(更新到 Android Build Tools 25.1.6 GCM/FCM 后出现 Incompatible
如何在 gradle 中获取当前风味How to get current flavor in gradle(如何在 gradle 中获取当前风味)
如何修复“意外元素<查询>在“清单How to fix quot;unexpected element lt;queriesgt; found in lt;manifestgt;quot; error?(如何修复“意外元素lt;查询gt;在“清单中找到错误
基于 Android Gradle 中多风味库的多风味应用Multi flavor app based on multi flavor library in Android Gradle(基于 Android Gradle 中多风味库的多风味应用)
Android 依赖在编译和运行时有不同的版本Android dependency has different version for the compile and runtime(Android 依赖在编译和运行时有不同的版本)
本地 aar 库的传递依赖Transitive dependencies for local aar library(本地 aar 库的传递依赖)