【问题标题】:How to get all android app flavor name programatically如何以编程方式获取所有 android 应用程序风味名称
【发布时间】:2018-04-12 09:43:08
【问题描述】:

我想获取活动中的所有应用程序风味列表,我该如何获取?这就是我通过 Gradle 在我的应用程序中实现风味的方式。

我只能通过BuildConfig.java 类获得当前风味。

public static final String FLAVOR = "myExamIdea";

但我想获得所有风​​味列表。下面是我的 gradle 文件 sn-p。

 flavorDimensions "igen"
 productFlavors {
        myExamIdea {}
        examLeaders{}
 }

这是我的BuildConfig.java 课程

public final class BuildConfig {
  public static final boolean DEBUG = Boolean.parseBoolean("true");
  public static final String APPLICATION_ID = "in.kpis.igen.myExamIdeaStaging";
  public static final String BUILD_TYPE = "debug";
  public static final String FLAVOR = "myExamIdeaStaging";
  public static final int VERSION_CODE = 1;
  public static final String VERSION_NAME = "1.0";
}

【问题讨论】:

    标签: android android-studio gradle android-gradle-plugin build.gradle


    【解决方案1】:

    不幸的是,这是不可能的。只是没有存储在 apk 中的口味列表。

    您可以使用 apktool 完全反汇编您的 APK,并在其解压/解码输出中搜索风味;如果您认为 smali 反汇编器(或清单解码器或其他一些)遗漏了某些信息,您甚至可以在 HEX 编辑器中分析原始输出。

    你不会找到的。

    【讨论】:

    • 好的,我会为我的目的找到一些替代品。
    • 是的,但您必须了解产品口味的尺寸。我已经更新了答案。
    【解决方案2】:

    BuildConfig.FLAVOR 为您提供综合产品风味。如果您只有一个维度,那么您将获得当前的风味。如果您有多个维度,那么您将有多个字段,例如

    BuildConfig.FLAVOUR_[dimensionname]
    

    不过,您可以获得产品风味列表。

    编辑:

    myExamIdea { flavorDimension "[dimension_name]"}
    examLeaders{ flavorDimension "[dimension_name]"}
    

    【讨论】:

    • 我在搜索这个时也发现了这个。请查看我更新的答案,我已经在使用维度,但在 BuildConfig.java 中看不到这些变量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    • 2014-01-17
    • 1970-01-01
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    相关资源
    最近更新 更多