ChatGPT解决这个技术问题 Extra ChatGPT

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

如何更改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 版本名称和代码。


A
Ajay S

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

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

https://i.stack.imgur.com/3bFFB.png


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

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

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

Android Studio < 3.4:

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

安卓工作室 >= 3.4:

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


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

您可以在模块的 build.gradle 文件中定义 versionNameversionCode,如下所示:

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.1"

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

A
Axifive

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

https://i.stack.imgur.com/FZDAf.jpg


生成我签名的 apk 后找不到应用选项
b
bonnyz

通过使用 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


E
Egor

打开您的 build.gradle 文件并确保您在 defaultConfig 元素中有 versionCodeversionName。如果没有,请添加它们。有关详细信息,请参阅 this 链接。


r
rajlaxmi_jagdale

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

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


M
Mark Kortink

这方面的官方文档是 here

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

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

https://i.stack.imgur.com/B1ANG.png

更长的答案是:

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


V
Vishwani

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


B
Bjørn Kjos-Hanssen

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


V
Val

Android Studio >= 3.6 上的 Android 版本和代码版本号更改:

实现此目的的两种方法:

通过Open Flutter项目直接在Android项目上并修改文件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


U
UmAnusorn

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

对于 Android,将此添加到您的 gradle 脚本中,并创建一个带有 VERSION_CODE=555 的文件 version.properties

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()