【问题标题】:Different version code for release version发布版本的不同版本代码
【发布时间】:2018-03-20 12:04:15
【问题描述】:

我有一个多模块 Android 项目,我的版本代码是 010007,但是当我使用 proguard 构建发布并缩小资源时,我得到的 APK 版本代码为 4103(在 proguard 生成的 output.json 文件中可见)。当我的outputs.json版本代码为4102时我的版本代码为010006时,此版本代码仍然是增量含义。

这是我的 output.json:

[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":4103},"path":"ui-android-release.apk","properties":{"packageId":"com.example","split":"","minSdkVersion":"17"}}]

这是我在项目级 gradle 文件中使用的 dependencies.gradle:

ext {
    // android
    applicationId = "com.example"
    compileSdkVersion = 26
    minSdkVersion = 17
    targetSdkVersion = 26
    versionCode = 010007
    versionName = "1.0.7"
    buildToolsVersion = "27.0.3"
    ...

这是我的 ui-android 模块的 build.gradle(与所有模块类似):

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

android {

    compileSdkVersion rootProject.compileSdkVersion
    buildToolsVersion rootProject.buildToolsVersion

    defaultConfig {
        applicationId rootProject.applicationId
        minSdkVersion rootProject.minSdkVersion
        targetSdkVersion rootProject.targetSdkVersion
        versionCode rootProject.versionCode
        versionName rootProject.versionName
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    signingConfigs {
        release {
            storeFile file(RELEASE_STORE_FILE)
            storePassword RELEASE_STORE_PASSWORD
            keyAlias RELEASE_KEY_ALIAS
            keyPassword RELEASE_KEY_PASSWORD
        }
    }

    buildTypes {
        debug {
            minifyEnabled false
        }
        release {
            minifyEnabled true
            zipAlignEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
    }
}

configurations.all {
    resolutionStrategy {
        force "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    }
}

dependencies {
    rootProject.uiAndroidDependencies.each {
        add(it.configuration, it.dependency, it.options)
    }
}

【问题讨论】:

    标签: android gradle proguard android-proguard


    【解决方案1】:

    版本代码中的前导 0 会造成混乱。在 Groovy 编程语言中,这指定了 octal (base-8) number。事实上,八进制的 10007 等于十进制的 4103。您可能想删除前导 0。

    【讨论】:

      猜你喜欢
      • 2018-09-08
      • 2012-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-12
      相关资源
      最近更新 更多