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

Sha*_*fri 5 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}"

}
Run Code Online (Sandbox Code Playgroud)

}

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

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

Kha*_*aha 0

在 gradle 中:

ext.vMajor = 1
ext.vMinor = 9

def computeVersionName() {
    return String.format('%d.%d', vMajor, vMinor)
}
Run Code Online (Sandbox Code Playgroud)

并在您的代码中:

    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);

    }
Run Code Online (Sandbox Code Playgroud)