如何更改Android版本和代码版本号?

Posted

技术标签:

【中文标题】如何更改Android版本和代码版本号?【英文标题】:How to change Android version and code version number? 【发布时间】:2014-04-12 01:12:39 【问题描述】:

如何更改android版本和代码版本号Android Studio?我想更改 Google Play 上的 apk 文件(应用程序),我需要更改 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">

但它不起作用。当我尝试在 Google Play 上发布它时,它显示我必须更改 Android 版本名称和代码。

【问题讨论】:

【参考方案1】:

进入 build.gradle 并在 defaultConfig 元素中设置版本代码和名称

defaultConfig 
    minSdkVersion 9
    targetSdkVersion 19
    versionCode 1
    versionName "1.0"

【讨论】:

有没有办法在 Java 中访问版本名称? 如果只更新了 java 文件,我们是否也必须更改 xml 版本?-> ?xml version="1.0" encoding="utf-8"?> 请务必在更改版本后清理项目,否则它可能不会显示在 APK 中。 它也解决了我的问题。然而,我真的很讨厌,讨厌,hhhaaate 当你有数百万个不同的地方可以改变一个变量,而其中只有一个是正确的,就像在这种情况下一样!!! 很烦人,既然这个设置只是针对单个App的,为什么不保留在APP的manifest.xml中呢?谷歌无缘无故地这样做......【参考方案2】:

在 Android Studio 中设置版本的最简单方法:

1.按 SHIFT+CTRL+ALT+S (或文件->项目结构-> 应用程序)

Android Studio

    选择标签“口味” 最后两个字段是“版本代码”和“版本名称”

Android Studio >= 3.4:

    在左侧面板中选择“模块”。 在中间面板中选择“应用”。 在右侧面板中选择“默认配置”选项卡。 向下滚动以查看和编辑“版本代码”和“版本名称”字段。

【讨论】:

仅供参考:文件 -> 项目结构 -> 选择标签“口味”谢谢@Ivo Stoyanov 我遇到了非常奇怪的问题。我从 build.gradle 文件中更改了 versionName,但它没有在 BuildConfig 文件中更新,所以当我生成 apk 时,它显示错误的 versionName。然后我从风味中编辑 versionName,然后它开始工作。谢谢! 注意:这不再适用于 Android Studio 3.4【参考方案3】:

您可以像这样在模块的build.gradle 文件中定义versionNameversionCode

android 
    compileSdkVersion 19
    buildToolsVersion "19.0.1"

    defaultConfig 
        minSdkVersion 8
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    
    .... //Other Configuration

【讨论】:

【参考方案4】:

在 android studio 中按 Ctrl+Alt+Shift+S 或转到文件 > 项目结构。 ..

在默认配置更改版本代码、名称等上选择左侧的应用程序并选择右侧的 Flavours 选项卡...

【讨论】:

生成我的签名 apk 后找不到应用选项【参考方案5】:

您可以通过使用 Gradle 的 Advanced Build Version Plugin明智地管理应用程序版本

你只需要将插件包含在你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

如需了解更多信息,请查看official documentation。

【讨论】:

【参考方案6】:

打开您的 build.gradle 文件并确保您在 defaultConfig 元素中包含 versionCodeversionName。如果没有,请添加它们。更多详情请参考this链接。

【讨论】:

【参考方案7】:

进入 build.gradle 并在 defaultConfig 元素中设置版本代码和名称

默认配置 minSdkVersion 9 targetSdkVersion 19 版本代码 1 版本名称“1.0”

【讨论】:

【参考方案8】:

更新清单文件后,不要构建项目,而是转到命令行并到达路径 ...bld\Debug\platforms\android。运行命令“ant release”。您的新 release.apk 文件将有一个新的版本代码。

【讨论】:

【参考方案9】:

我没有得到在 Android Studio 1.4 中工作的其他答案。但这有效: 单击主功能区下方左侧的应用名称。 它将显示文件列表。 打开AndroidManifest.xml并在此处更改版本代码和版本号。

【讨论】:

【参考方案10】:

这方面的官方文档是here。

简短的回答是在 Gradle 而不是清单中执行,Gradle 会覆盖清单。

上面给出的File | Project Structure | Modules | Default Config 答案只是通过 UI 更新 Gradle,而不是直接编辑 XML。

更长的答案是:

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

【讨论】:

【参考方案11】:

Android Studio 上的 Android 版本和代码版本号变化 >= 3.6:

实现这一点的两种方法:

    直接在Android项目上打开Flutter项目并修改文件

    local.properties

更改以下值。示例:

flutter.buildMode=release
flutter.versionName=3.0.0
flutter.sdk=C\:\\src\\flutter
sdk.dir=C\:\\Users\\vgonza\\AppData\\Local\\Android\\sdk
flutter.versionCode=30
    打开 pubspec.yaml

改变

version: 2.0.0+8

含义: 版本名称为 2.0.0 版本号为8

参见 Suragch 的示例:

How to set build and version number of Flutter app

【讨论】:

【参考方案12】:

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

对于 Android,请将其添加到您的 gradle 脚本中,并创建一个文件 version.properties,其中 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()

【讨论】:

以上是关于如何更改Android版本和代码版本号?的主要内容,如果未能解决你的问题,请参考以下文章

如何在构建服务器和工作站之间同步 Gradle/Android 版本代码

在不更改版本号的情况下更新 android 应用

使用 apktool 更改版本号

如何获取我的 Android 应用程序的内部版本号? [复制]

如何在 Azure Pipelines 中自动增加 Xamarin Android 内部版本号和版本号?

如何更改应用程序和功能窗口中打印的版本号?