如何更改Android版本和代码版本号Android工作室?我想更改谷歌Play上的apk文件(app),我需要更改Android版本和代码版本号。我在Android Studio的AndroidManifest.xml文件中尝试了这一点:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bestsoftcorporation.circle.app"
android:versionCode="101"
android:versionName="2.0">

但这并不奏效。当我试图在谷歌上发布它时,它显示我必须更改Android版本名称和代码。


当前回答

您可以使用Gradle的高级构建版本插件来明智地管理您的应用程序版本。

你只需要在build.gradle中包含这个插件:

buildscript {
  repositories {
      jcenter()
  }

  dependencies {
      classpath 'org.moallemi.gradle.advanced-build-version:gradle-plugin:1.5.0'
  }
}

apply plugin: 'org.moallemi.advanced-build-version'

然后你可以使用版本控制函数(当然,还可以自定义它们):

advancedVersioning {
    nameOptions { }
    codeOptions { }
    outputOptions { }
}

def appVersionName = advancedVersioning.versionName
def appVersionCode = advancedVersioning.versionCode

要了解更多信息,请查看官方文档。

其他回答

您可以使用Gradle的高级构建版本插件来明智地管理您的应用程序版本。

你只需要在build.gradle中包含这个插件:

buildscript {
  repositories {
      jcenter()
  }

  dependencies {
      classpath 'org.moallemi.gradle.advanced-build-version:gradle-plugin:1.5.0'
  }
}

apply plugin: 'org.moallemi.advanced-build-version'

然后你可以使用版本控制函数(当然,还可以自定义它们):

advancedVersioning {
    nameOptions { }
    codeOptions { }
    outputOptions { }
}

def appVersionName = advancedVersioning.versionName
def appVersionCode = advancedVersioning.versionCode

要了解更多信息,请查看官方文档。

进入构建。在defaultConfig元素中设置版本代码和名称

defaultConfig {
    minSdkVersion 9
    targetSdkVersion 19
    versionCode 1
    versionName "1.0"
}

官方文件在这里。

简单的回答是在Gradle中做,而不是在manifest中,Gradle会覆盖manifest。

上面给出的文件|项目结构|模块|默认配置答案只是通过UI更新Gradle,而不是直接编辑XML。

更长的答案是:

如果你的应用直接在元素中定义了应用版本,Gradle构建文件中的版本值将覆盖清单中的设置。此外,在Gradle构建文件中定义这些设置允许你为不同版本的应用程序指定不同的值。为了获得更大的灵活性,并避免清单合并时潜在的覆盖,你应该从元素中删除这些属性,并在Gradle构建文件中定义你的版本设置。

进入构建。在defaultConfig元素中设置版本代码和名称

defaultConfig { minSdkVersion 9 targetSdkVersion 19 versionCode 1 versionName“1.0” }

您可以通过编程方式轻松地自动增加versionName和versionCode。

对于Android,将此添加到您的gradle脚本,并创建一个文件版本。属性VERSION_CODE=555

android {
        compileSdkVersion 30
        buildToolsVersion "30.0.3"
    
        def versionPropsFile = file('version.properties')
        if (versionPropsFile.canRead()) {
            def Properties versionProps = new Properties()
    
            versionProps.load(new FileInputStream(versionPropsFile))
    
            def code = versionProps['VERSION_CODE'].toInteger() + 1
    
            versionProps['VERSION_CODE'] = code.toString()
            versionProps.store(versionPropsFile.newWriter(), null)
    
    
            defaultConfig {
                applicationId "app.umanusorn.playground"
                minSdkVersion 29
                targetSdkVersion 30
                versionCode code
                versionName code.toString()