ChatGPT解决这个技术问题 Extra ChatGPT

How to change Android version and code version number?

How to change Android version and code version number Android Studio? I want to change apk file (app) on Google Play and I need to change Android version and code version number. I tried with this in AndroidManifest.xml file in Android Studio:

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

But it does not work. When I tried to publish it on Google Play it display that I must to change Android version name and code.


A
Ajay S

Go in the build.gradle and set the version code and name inside the defaultConfig element

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

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


Is there a way to access the versionname in Java?
Do we also have to change the xml verion if only java files have been updated ?-> ?xml version="1.0" encoding="utf-8"?>
Make sure to clean the project after changing the version or it may not show up in the APK.
It solved my issue too. However, I really really hate,hate,hhhaaate when you have million different places where to change a variable and just one of them is the right one, like in this case!!!!
It's pretty annoying, since this setting was just for a single App, why not keep it in APP's manifest.xml ? Google did this for no reason......
A
Axifive

The easiest way to set the version in Android Studio:

1. Press SHIFT+CTRL+ALT+S (or File -> Project Structure -> app)

Android Studio < 3.4:

Choose tab 'Flavors' The last two fields are 'Version Code' and 'Version Name'

Android Studio >= 3.4:

Choose 'Modules' in the left panel. Choose 'app' in middle panel. Choose 'Default Config' tab in the right panel. Scroll down to see and edit 'Version Code' and 'Version Name' fields.


FYI: File -> Project Structure -> Choose tab 'Flavors' Thank you @Ivo Stoyanov
I face very strange issue. I change versionName from build.gradle file but it was not updated in BuildConfig file and so when I generate apk, it shows wrong versionName. Then I edit versionName from flavors, then it starts working. Thank you!
Note: This no longer works as of Android Studio 3.4
P
Piyush Agarwal

You can define your versionName and versionCode in your module's build.gradle file like this :

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.1"

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

A
Axifive

Press Ctrl+Alt+Shift+S in android studio or go to File > Project Structure...

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


Unable to find app option after generating my signed apk
b
bonnyz

You can manage your application versioning wisely by using the Advanced Build Version Plugin for Gradle.

You just need to include the plugin in yout 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'

And then you can use the versioning functions (and, obviously, customize them):

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

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

For more information, take a look at the official documentation.


E
Egor

Open your build.gradle file and make sure you have versionCode and versionName inside defaultConfig element. If not, add them. Refer to this link for more details.


r
rajlaxmi_jagdale

Go in the build.gradle and set the version code and name inside the defaultConfig element

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


M
Mark Kortink

The official documentation on this is here.

The short answer is do it in Gradle not the manifest, Gradle overwrites the manifest.

The File | Project Structure | Modules | Default Config answer given above just updates Gradle via a UI rather than by directly editing XML.

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

The longer answer is:

If your app defines the app version directly in the element, the version values in the Gradle build file will override the settings in the manifest. Additionally, defining these settings in the Gradle build files allows you to specify different values for different versions of your app. For greater flexibility and to avoid potential overwriting when the manifest is merged, you should remove these attributes from the element and define your version settings in the Gradle build files instead.


V
Vishwani

After updating the manifest file, instead of building your project, go to command line and reach the path ...bld\Debug\platforms\android. Run the command "ant release". Your new release.apk file will have a new version code.


B
Bjørn Kjos-Hanssen

I didn't get the other answers to work in Android Studio 1.4. But this worked: click on your app name to the left below the main ribbon. It will show a list of files. Open AndroidManifest.xml and change the version code and version number there.


V
Val

Android version and code version number change on Android Studio >= 3.6:

Two ways to achieve this:

Direct on the Android project by Open Flutter project and modify the file local.properties

change the following values. Example:

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

Open pubspec.yaml

Change the

version: 2.0.0+8

Meaning: The version name is 2.0.0 The version code is 8

See example by Suragch in:

How to set build and version number of Flutter app


U
UmAnusorn

You can easily auto increase versionName and versionCode programmatically.

For Android add this to your gradle script and also create a file version.properties with 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()