2017-06-01 4 views
1

APKのサイズを縮小するためにAPKを分割し始めます。そして、私たちがコード(Java)を取得する理由が常にデフォルトのものである理由を理解することはできません。Androidのgradle apkが分割し、コード内のversionCodeとversionNameを取得します

ここ

が関連のGradleである:

defaultConfig { 
    applicationId applicationIdPrefix 
    versionCode 1000 
    versionName "3.3.0" 

// This is the configuration we want to publish 
defaultPublishConfig "productionRelease" 

applicationVariants.all { variant -> 
    def apkName = "$projectName-${variant.name}-v${versionString}.${baseVersionCode}.apk" 

    variant.outputs.each { output -> 
    // Redefine the versionCode and the apkName to include ABI when available 
    def abiName = output.getFilter(OutputFile.ABI) 
    def baseAbiVersionCode = project.ext.abiCodes.get(abiName) 

    if (baseAbiVersionCode != null) { 
     output.versionCodeOverride = variant.versionCode + baseAbiVersionCode 
     output.versionNameOverride = "$versionString (${output.versionCodeOverride})" 

そして、これはversionNameversionCodeを取得する方法である:

BuildConfig.VERSION_NAME 
BuildConfig.VERSION_CODE 

彼らはいつも3.3.0および1000のはなぜですか?我々はこれらの値を設定の下に表示したいので、これらの値を取得したい。要するに

答えて

0

、この問題解決に変更:私たちは私たちのAPKを分割した後、これ以下は、私たちに正しいバージョン名とバージョンコードを与えていない

PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0); 
String version = pInfo.versionName; 
int verCode = pInfo.versionCode; 

。私は、グレード同期中にBuildConfig.javaが生成されたということが起こったと思います。

output.versionCodeOverride = variant.versionCode + baseAbiVersionCode 
output.versionNameOverride = "$versionString (${output.versionCodeOverride})". 
:それは時代遅れであるとのGradleのこれらの2行で上書きした私たちの実際のバージョンコードは、一致しない理由

String versionName = BuildConfig.VERSION_NAME; 
int versionCode = BuildConfig.VERSION_CODE; 

はたぶんそれです

関連する問題