获取 Build Variant flavorName

Posted 安果移不动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取 Build Variant flavorName相关的知识,希望对你有一定的参考价值。

def getCurrentFlavor() 
    Gradle gradle = getGradle()
    String tskReqStr = gradle.getStartParameter().getTaskRequests().toString()

    Pattern pattern

    if (tskReqStr.contains("assemble"))
        pattern = Pattern.compile("assemble(\\\\w+)(Release|Debug)")
    else
        pattern = Pattern.compile("generate(\\\\w+)(Release|Debug)")

    Matcher matcher = pattern.matcher(tskReqStr)

    if (matcher.find())
        return matcher.group(1).toLowerCase()
    else 
        println "NO MATCH FOUND"
        return ""
    

然后。我又给优化了一个版本。

def getCurrentFlavor() 
    Gradle gradle = getGradle()
    String tskReqStr = gradle.getStartParameter().getTaskRequests().toString()
    Pattern pattern = Pattern.compile("(assemble|generate|bundle)(.*?)(Release|Debug)")
    Matcher matcher = pattern.matcher(tskReqStr)
    String channel = ""
    if (matcher.find()) 
        channel = matcher.group(2).toLowerCase()
    
    return channel

支持 bundle 并使用更加优雅的正则、这才是技高一筹的技术员应该干的事情。

以上是关于获取 Build Variant flavorName的主要内容,如果未能解决你的问题,请参考以下文章

如何使机器获取adb root权限

如何使机器获取adb root权限

Android Gradle 技巧之一: Build Variant 相关

Android Studio 3.0 - 找不到方法“com.android.build.gradle.internal.variant.BaseVariantData.getOutputs()Lja

使用 glib 和 dbus dbus_g_value_build_g_variant 构建 Maliit 时出错

为每个 Build Variant 使用不同的 manifestPlaceholder