上传失败您需要为APK使用其他版本代码,因为您已经有一个版本代码为2的APK


127

根据此答案,如何解决“您的APK的版本代码必须高于2。” 在Google Play的开发者控制台中?我刚刚将版本代码从2更改为3,但无法上传构建。

这是我上传apk之前的旧清单

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="mypackage name"
    android:installLocation="auto"
    android:versionCode="28"
    android:versionName="1.0028" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />
        .....

这是我必须在android开发人员控制台上上传的新版本代码。看我的清单

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="mypackage name"
    android:installLocation="auto"
    android:versionCode="2"
    android:versionName="2.0001" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />
        ......

我不知道是什么问题。有什么帮助吗? 在此处输入图片说明

Answers:


125
android:versionCode="28"

您以前的versionCode是28。您应该将其增加1到29。

android:versionCode="29"

大概您以前的应用程序版本是1到28。通过使用versionCode 3发行,您与已经使用该versionCode发布的应用程序的先前版本冲突。


该数字仅用于确定一个版本是否比另一个版本新,而更高的数字则表示更新的版本。这不是向用户显示的版本号
穆罕默德AbdelraZek

对于可能会感到困惑的任何其他人,请注意,这不是sdk版本,而是您的应用程序版本代码,
SHIKHAR SINGH

您能告诉我该文件的确切路径是什么吗?
若奥·皮门特尔·费雷拉

214

对于谁使用Android Studio的人的问题可以通过编辑来解决 versionCode,并versionNamebuild.gradle代替AndroidManifest.xml

例如

defaultConfig {
    applicationId "com.my.packageId"
    minSdkVersion 15
    targetSdkVersion 22
    versionCode 2      <-- change this
    versionName "2.0"  <-- change this
}

3
您可以从build.gradle中读取AndroidManifest.xml吗?两次拥有值没有意义。
单线程

这就是答案。Tha这里发生的是gradle是构建proyect的唯一负责人,因此它覆盖了版本
jasmo2

1
确保versionCode是一个整数,并在更改后进行同步。
sk md

29

就我而言,这是一个简单的问题。我之前已在控制台中上传了一个应用程序,因此在解决了一些问题后我尝试重新上传它,我要做的就是从工件库中删除以前的APK


11
我通过Google Play控制台上传了一个版本,然后在发布前将其删除,然后再次上传并出现OP错误。我以为我已经删除了它,但是它仍然存在于Artifact Library中。从那里删除,然后我可以上传...
Scuzzlebutt

22

如果使用的是ionic框架,请转到config.xml文件并更改“ widget”标签中的“ version”属性。增加版本号。然后重建,签名并上传您的apk到商店。解决了我的问题。


7
谢谢。我将仅添加一些细节。我将小部件标记中的version属性从0.0.1更改为0.0.2。执行cordova build --release android命令后,此更改将AndroidManifest.xml修改为两个属性,从android:versionCode =“ 1”更改为 android:versionCode =“ 2” ,将android:versionName =“ 0.0.1” **更改为** android:versionName =清单标签中的“ 0.0.2”
remat_br 2016年

16

当您尝试上载具有与Playstore上已有版本相同的版本值的apk时,会出现此错误。

只需在build.gradle文件中更改以下内容=> versionCode和versionName

defaultConfig {
    applicationId "com.my.packageId"
    minSdkVersion 16
    targetSdkVersion 27
    versionCode 2      <-- increment this by 1
    versionName "2.0"  <-- this is the version that shows up in playstore, 
                           remember that the versioning scheme goes as follows.
                           first digit = major breaking changes version
                           second digit = minor changes version
                           third digit = minor patches and bug fixes.
                           e.g versionName "2.0.1"
}

10

有时,在创建发行版期间上传APK时,PlayStore会遇到错误,并且由于无法为当前草稿发行版再次上传相同的APK而陷入困境。您收到错误“上传失败...”

解决方案是转到发布管理下的Artifact库菜单,然后删除草稿工件。完成此操作后,您将可以再次上传APK,并完成发布。

希望它能帮助别人...


7

在Android Studio中1.1.0,变化versionCodebuild.gradleModule: app,并不一定变化versionName

android {
...
    defaultConfig {
...
        versionCode 3
        versionName "1.0"
    }
...
}

4

正如Martin Konecny的回答所说,您需要将versionCode更改为更高的版本。

您先前的版本代码为28。应该将其更改为29

根据android开发人员网站上文档。版本代码是

一个整数值,表示相对于其他版本的应用程序代码的版本。

因此,它应该与文档中指出的以前的versionCode相关(我的意思是更高的含义):

您应确保应用程序的每个后续发行版均使用更大的价值。

如文档中再次提到的

android:versionCode值不一定与用户可见的应用程序发行版非常相似(请参见下面的android:versionName)

因此,即使这是2.0001您的应用程序的发行版,也不一定表示versionCode是2

希望这可以帮助 :)


4

如果您使用的是Android Studio,则可以执行以下操作:

构建->编辑风味

然后从那里更改版本代码和名称。

在此处输入图片说明


4

如果您在Building Expo中使用Building Standalone Apps,则由于标准app.json配置仅引用该version属性,因此versionCode错误可能会逐渐蔓延。

我能够添加如下versionCode属性android

示例App.json

{
  "expo": {
    "sdkVersion": "29.0.0",
    "name": "App Name",
    "version": "1.1.0",
    "slug": "app-name",
    "icon": "src/images/app-icon.png",
    "privacy": "public",
    "android": {
      "package": "com.madhues.app",
      "permissions": [],
      "versionCode": 2 // Notice the versionCode added under android.
    }
  }
}

详细文档:https : //docs.expo.io/versions/v32.0.0/workflow/configuration/#versioncode


3

如果您正在使用phonegap / cordova应用程序,则只需编辑config.xml并在小部件中添加android-versionCode和版本。

<widget id =“ com.xxx.yyy” version =“ 1.0.1” xmlns =“ http://www.w3.org/ns/widgets” xmlns:cdv =“ http://cordova.apache.org/ ns / 1.0“ android-versionCode =” 100001“ version =” 1.0.1“>


3

(对于Flutter App)您需要为APK或Android App Bundle使用不同的版本代码,因为您已经拥有一个版本代码为1的版本。

不要惊慌...

你需要改变颤振版本pubspec.yaml文件版本鳕鱼给E local.properties文件。

首先转到您的pubspec.yaml文件。前三行应为App的名称,说明和版本。

发行前-

对您来说,版本可能看起来像这样:

版本:1.0.0 + 1

因此,在创建要发布的apk(用于在Google Play控制台上更新现有应用程序,即进行新更新)之前,请确保将此数字增加1。(您应将其增加,因为不需要增量步骤)。

只需将该版本更改为(根据您的需要)

版本:1.0.1 + 2

第二,如果

flutter.versionCode项目- > Android的- > local.properties

flutter.versionCode = 1然后将其更改或升级为flutter.versionCode = 2或比以前的代码大的任何其他数字。

最后根据文档发布该应用程序。


因此,对于一个版本的代码如下语义版本,它在哪里major.minor.patch+build,玩的是看着过去的build组成部分?(那不是错误吗?)
AWhitford

1

如果您的Flutter应用的Android APK出现此错误,请在defaultConfig {}下的app / build.gradle文件中

注释掉

versionCode flutterVersionCode.toInteger()
versionName flutterVersionName

并添加

versionCode 2
versionName "2"

或“旧版本代码” +1。


1

我在将flutter应用程序上载到Playstore时遇到了相同的错误,只需更改pubspec.yaml中的版本代码即可。可以尝试将版本代码从+1更改为+2,然后使用重新生成apk

flutter build apk --split-per-abi 

并为您的用户将所有apk上传到Playstore。下次要推送更新时,请确保将版本代码更新为+3,依此类推。

注意:版本代码和版本名称不同,您可以在android / local.properties文件中看到。例如版本:1.0.0 + 2

版本是1.0.0,版本码是+2


0

这似乎是因为您已经将版本3的APK文件上传到Google Play商店。再次,您上传具有相同版本的apk。因此已发生此问题。

因此,对于解决方案,您需要更改版本名称和版本代码(以1递增)并运行一次应用程序,然后将其导出并上传到Google Play。


0

我不断出现相同的错误,

最后,如屏幕截图所示,我使用Google Play控制台手动上传了apk文件。

在“应用程序发布”下,您选择屏幕截图中显示的“创建发布”按钮,然后从/android/app/bin/build/outputs/apk/release/app-release.apk

在此处输入图片说明


0

以我为例AndroidManifest

      javaCompileOptions {
        annotationProcessorOptions {
            arguments = [
                    'androidManifestFile': 'app\\build\\intermediates\\merged_manifests\\debug\\processDebugManifest\\merged\\AndroidManifest.xml'
            ]
        }
   }

这里的“ androidManifestFile”位置错误,将其更改为

"androidManifestFile": "$projectDir/src/main/AndroidManifest.xml".toString()

一切正常

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.