2016-04-05 6 views
2

app.gradle Betrachten Sie beinhaltet folgende Leistungen:Ist es möglich, den versionName ohne das Suffix von Android zu erhalten?

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

Ist es möglich, den Versionsnamen ohne die Endung zu bekommen? Bei Verwendung PackageInfo pInfo = applicationContext.getPackageManager().getPackageInfo(applicationContext.getPackageName(), 0); pInfo.versionName gibt 2.1.6-debug gibt es eine Möglichkeit, nur 2.1.6 ohne eine Zeichenfolge oder Regex-Matching zu erhalten.

Vielen Dank!

+1

warum nicht einfach 'pInfo.versionName.replace ("- debug", "")'? –

+0

Oder verwenden Sie eine Gradle-Konstante, mit der sowohl ein 'buildConfigField' als auch Ihr' versionName' gefüllt werden. AFAIK, der Name der nicht unterstützten Version ist nicht verfügbar. – CommonsWare

+0

Sie wissen, dass "versionNameSuffix" optional ist, oder? –

Antwort

4

ich tun würde, es BuildConfig erzeugt werden:

Gradle

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

Java

String version = BuildConfig.VERSION; 
0

Frage ist alt, aber es könnte jemand helfen - ich habe gesucht etwas Ähnliches kürzlich und benutzte dieses:

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

oder für alle buidTypes

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

OR für alle App-Varianten:

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