如何从android gradle文件中获取当前的构建变体

时间:2016-07-28 13:40:25

标签: android gradle

我有一个基于构建变体的场景,我必须运行一个任务。 应用程序正在使用productFlavour,因此它为两种产品风格生成调试和发布版本。

我想要的只是将当前选定的产品风格的构建类型存储在gradle本身的变量中。

我尝试过以下代码

task getflavour(){
android.applicationVariants.all {         com.android.build.gradle.api.ApplicationVariant variant ->
   println "values of variant ${variant.productFlavors[0].name}"
    println "assemble ${variant.flavorName}"

}

}

但它给出了所有构建变体,即2个调试和2个发行版本名称。我只想拥有当前选择的构建变体。

我真的很感激其中的任何输入。提前谢谢

2 个答案:

答案 0 :(得分:1)

您可以在变体循环中使用:gradle.startParameter.taskNames [0]

答案 1 :(得分:0)

in gradle:

ext.vMajor = 1
ext.vMinor = 9

def computeVersionName() {
    return String.format('%d.%d', vMajor, vMinor)
}

并在您的代码中:

    PackageInfo pInfo = null;

    try {

        pInfo = YamsaferApplication.getContext().getPackageManager().getPackageInfo(YamsaferApplication.getContext().getPackageName(), 0);

        return pInfo.versionName;

    } catch (PackageManager.NameNotFoundException e) {

        Log.e("getAppVersion", "Error getting App version", e);

    }