Android在代码中使用Gradle Build风格,例如if情况

斯蒂芬·塞利斯(Stephan Celis):

我正在尝试构建风味。在我的build.gradle中,我定义了2种口味,一种是普通口味,另一种是管理员口味。

基本上,管理员风格在主要活动上有一个额外的按钮。

我知道我可以为不同的口味定义不同的包/类。但是,是否有一种方法可以根据口味来添加/删除一段代码呢?

基本上,我将需要一个Activity的两个版本。但是我不希望活动的两个完全不同的版本来维护它们。

所以在我的活动中,我想做

=> gradle检查风味是否为“ admin”

=>如果是,请添加此按钮的代码

这可能吗?还是您需要两种不同的身体活动,并在以后添加功能时同时维护它们。

mixel:

BuildConfig.FLAVOR给您结合的产品风味。因此,如果您只有一个口味维度:

productFlavors {
    normal {
    }

    admin {
    }
}

然后,您可以检查一下:

if (BuildConfig.FLAVOR.equals("admin")) {
    ...
}

但是,如果您有多个尺寸维度:

flavorDimensions "access", "color"

productFlavors {
    normal {
        dimension "access"
    }

    admin {
        dimension "access"
    }

    red {
        dimension "color"
    }

    blue {
        dimension "color"
    }
}

也有BuildConfig.FLAVOR_accessBuildConfig.FLAVOR_color字段,因此您应该像这样检查它:

if (BuildConfig.FLAVOR_access.equals("admin")) {
    ...
}

BuildConfig.FLAVOR包含完整的风味名称。例如,adminBlue

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用MTL风格的限制效果,例如`Freer`

在Android build.gradle中使用`git describe --match`

在Android Studio中的build.gradle中使用味道尺寸

在build.gradle中使用'model.android.ndk'命令

在gradle android build中使用progaurd生成jar文件

在Android中使用build.gradle将translatable = false添加到String资源?

在build.gradle中使用Java变量

如何在build.gradle中使用gradle属性

Android上使用不同键的Gradle签名风格

NDK:是否可以在build.gradle中定义android NDK版本,以便本机代码使用已定义的版本?

如何在不破坏代码风格的情况下使用RestSharp反序列化名为“ value”的属性?

Android - 编程风格 - RecyclerView - 在 ViewHolder 或 onBindViewHolder 中使用 SetText?

风格化单选按钮在Android中使用CardView

立即在IDE中使用build.gradle依赖项

如何在gradle.build中使用spring属性?

如何在build.gradle文件中使用tools:overrideLibrary?

如何使 gradle build 在 IntelliJ IDEA 中使用 jdk 1.6

如何在build.gradle中使用最终解析的applicationId

build.gradle警告“避免在版本号中使用+”

在不使用HTML img标签的情况下更改github风格的markdown中图像的大小?

Android Gradle风格在Java中获取buildConfigField

带有Android风格的Gradle applicationId

默认情况下,Android Gradle 插件版本 8.0 中的资源 ID 将是非最终的,请避免在 switch case 语句中使用它们

在Android中使用Ada代码

在build.gradle中使用自定义Gradle插件的多种方法

在Android Studio中使用Gradle删除发行版上的代码行

在什么情况下我想在 C/C++ 代码中使用内联汇编代码

在build.gradle中使用android支持库23.2会使应用程序崩溃(XmlPullParserException:XmlPullParserException:无效的可绘制标记向量)

在旧版 Android 中使用 java.time 类,例如 DayOfWeek