久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

如何在 gradle 中獲取當前風味

How to get current flavor in gradle(如何在 gradle 中獲取當前風味)
本文介紹了如何在 gradle 中獲取當前風味的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我的應用有兩種產品風格:

I have two product flavors for my app:

productFlavors {
    europe {
        buildConfigField("Boolean", "BEACON_ENABLED", "false")
    }

    usa {
        buildConfigField("Boolean", "BEACON_ENABLED", "true")
    }
}

現在我想在任務中獲取當前風味名稱(我在 Android Studio 中選擇的名稱)以更改路徑:

Now I want to get the current flavor name (which one I selected in Android Studio) inside a task to change the path:

task copyJar(type: Copy) {
    from('build/intermediates/bundles/' + FLAVOR_NAME + '/release/')
}

如何在 Gradle 中獲取 FLAVOR_NAME?

How can I obtain FLAVOR_NAME in Gradle?

謝謝

推薦答案

如何獲取當前風味名稱

我開發了以下函數,準確返回當前風味名稱:

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 ""
    }
}

你也需要

import java.util.regex.Matcher
import java.util.regex.Pattern

在開頭或您的腳本中.在 Android Studio 中,這通過使用Make Project"或Debug App"按鈕進行編譯來工作.

at the beginning or your script. In Android Studio this works by compiling with "Make Project" or "Debug App" button.

def getCurrentVariant() {
    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(2).toLowerCase()
    }else{
        println "NO MATCH FOUND"
        return ""
    }
}

如何獲取當前風味 applicationId

類似的問題可能是:如何獲取 applicationId?同樣在這種情況下,沒有直接的方法來獲取當前的風味 applicationId.然后我使用上面定義的getCurrentFlavor函數開發了一個gradle函數,如下:

How to get current flavor applicationId

A similar question could be: how to get the applicationId? Also in this case, there is no direct way to get the current flavor applicationId. Then I have developed a gradle function using the above defined getCurrentFlavor function as follows:

def getCurrentApplicationId() {
    def currFlavor = getCurrentFlavor()

    def outStr = ''
    android.productFlavors.all{ flavor ->

        if( flavor.name==currFlavor )
            outStr=flavor.applicationId
    }

    return outStr
}

瞧.

這篇關于如何在 gradle 中獲取當前風味的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

IncompatibleClassChangeError after updating to Android Build Tools 25.1.6 GCM / FCM(更新到 Android Build Tools 25.1.6 GCM/FCM 后出現 IncompatibleClassChangeError)
How to fix quot;unexpected element lt;queriesgt; found in lt;manifestgt;quot; error?(如何修復“意外元素lt;查詢gt;在“清單中找到錯誤?)
Multi flavor app based on multi flavor library in Android Gradle(基于 Android Gradle 中多風味庫的多風味應用)
Android dependency has different version for the compile and runtime(Android 依賴在編譯和運行時有不同的版本)
Transitive dependencies for local aar library(本地 aar 庫的傳遞依賴)
Why I#39;m Getting Duplicate Class When Running My Android Project(為什么我在運行我的 Android 項目時得到重復的類)
主站蜘蛛池模板: av基地网 | 成年人午夜视频 | 欧美一级特黄视频 | 欧洲色综合 | 成人做爰免费视频免费看 | 亚洲一区在线看 | 亚洲视频一区二区三区 | 中文字幕黄色 | 国产三级在线播放 | 日韩精品毛片 | 久久精品国产精品 | 四虎影院永久免费 | 天天看天天射 | 日本综合久久 | 欧美午夜在线观看 | 91精品国产99久久久久久红楼 | 色多多视频在线观看 | 中文字幕一级片 | 久久在线精品 | 可以在线观看的av | 中文字幕久久久久 | 精品在线观看视频 | 青青五月天 | 亚洲性视频 | 午夜88| 欧美天堂 | 一级黄视频 | 91精品免费视频 | 久久黄视频 | 国产精品久久免费 | 日本一区二区三区四区五区 | 亚洲毛片网 | 国产午夜免费 | 日韩在线不卡视频 | 91动漫在线观看 | 视频在线一区二区 | 亚洲国产黄色 | 人人草人人干 | 蜜桃精品一区二区三区 | av天天看| 99热99 |