2016-04-05 69 views
2

考慮app.gradle包括以下內容:是否有可能從Android獲取沒有後綴的versionName?

defaultConfig { 
     versionName "2.1.6" 
    } 
    debug { 
     debuggable true 
     versionNameSuffix "-debug" 
    } 

是否有可能得到的版本名稱不帶後綴?當使用PackageInfo pInfo = applicationContext.getPackageManager().getPackageInfo(applicationContext.getPackageName(), 0); pInfo.versionName返回2.1.6-debug有沒有辦法只得到2.1.6沒有做一些字符串或正則表達式匹配。

謝謝!

+1

爲什麼不直接'pInfo.versionName.replace( 「 - 調試」, 「」)'? –

+0

或者,使用Gradle常量,用於填充'buildConfigField'和'versionName'。 AFAIK,未加後綴的版本名稱不可用。 – CommonsWare

+0

你知道「versionNameSuffix」是可選的,不是嗎? –

回答

4

我會做它用產生BuildConfig

搖籃

defaultConfig { 
    def version = "2.1.6" 
    versionName version 
    buildConfigField "String", "VERSION", "\"$version\"" 
} 

的Java

String version = BuildConfig.VERSION; 
0

問題是舊的,但它可能幫助別人 - 我已經看過了最近類似的東西,並使用此:

debug{ 
    buildConfigField "String", "APP_VER", "\"" + android.defaultConfig.versionName + "\"" 
} 

或所有buidTypes

buildTypes.each { 
     it.buildConfigField "String", "APP_VER", "\"" + android.defaultConfig.versionName + "\"" 
} 

或所有應用程序變種:

applicationVariants.all { variant -> 
    variant.buildConfigField "String", "APP_VER", "\"" + android.defaultConfig.versionName + "\"" 
} 
相關問題