谷歌应用商店发布问题

82

我正在尝试发布我的Android应用的新版本。

我可以上传APK文件,但是在点击“审核”按钮后,我遇到了以下错误:

审核摘要 错误

在开始此版本的推出之前,请解决这些错误。 您无法推出此版本,因为它不允许任何现有用户升级到新添加的APK。

请注意,此应用程序是使用CORDOVA开发的

应用程序版本详细信息如下图所示。 与上一个版本唯一的区别是目标SDK从24变更为26

有人能给点建议来解决这个问题吗?感谢你的帮助。

enter image description here


2
为了进一步帮助其他人找到这个问题和答案,我想补充一下:在切换到一个应用程序的App Bundle后,我收到了以下德语加密错误消息:Dieser Release kann nicht eingeführt werden, da vorhandene Nutzer kein Upgrade auf die neu hinzugefügten APKs durchführen können. 这是由于我没有注意到apk和App Bundle具有不同的版本号,导致了完全相同的版本问题。 - sceee
2
我投票关闭此问题,因为 https://meta.stackoverflow.com/q/272165。 - Zoe stands with Ukraine
8个回答

127

我联系了Google支持团队,他们在24小时内回复了我。

问题是我的AndroidManifest.xml里的android:versionCode比之前发布的版本低。修复后,我能够成功发布我的应用程序。

如何解决此问题

我在config.xml文件的<manifest标签中将android-versionCode更改为更高的值,使得AndroidManifest.xml具有更高的值。


Google的完整回复

你好,

感谢您与Google Play开发者支持团队联系。

您看到该错误消息是因为您的新APK版本代码小于先前APK的版本代码。新的APK必须始终具有比上一个版本更高的版本代码,否则Play商店将无法知道新的APK是否为更新。请将您的新APK的版本代码更改为至少206020。

祝好!

Google Play开发者支持团队


36
我不明白为什么他们没有检测到这个问题,只是显示一个更清晰的错误信息。 - Luca Steeb
哦天啊,终于有解决方案了!我同意Luca的观点!PlayConsole可以更具体地指出需要纠正的内容。我花了几天时间寻找如何解决它,感谢你的分享。 - fellyp.santos
非常感谢你,伙计。你是我的救世主。这个解决方案可行。我正在使用Android Studio构建捆绑包并上传到Play Store。 - Umer
那对我有用,但在我的情况下,versionCode位于build.gradle文件中,而不是Manifest中。 - Liker777

49

如果你的旧版APK版本号比新版APK版本号高,那么就会出现这个错误。

enter image description here

重要的不是版本名称,它实际上可以是任何字符串,只有版本代码必须始终高于以前的版本。

https://developer.android.com/studio/publish/versioning

Flutter解决方法

pubspec.yaml文件中,版本行中加号后面的数字必须比Google Play控制台屏幕上显示的"1个应用程序包已停用"的旧版本代码高。 如果这是您的版本行,则为50:

version: 1.0.0+50

已经完成了,我正在从普通的 APK 转向 App Bundle。 - Hassan Ansari
1
我之前不知道Flutter,这真的是救命稻草。 - Hitesh Kumar Saini
请注意,这里的比较仅针对整数值。因此,1.2 作为 1020 实际上会小于 1.1.2 作为 101010。 - Jack

6

我遇到了同样的问题,有趣的是新版本(12.0.0)的versioncode(120001)比之前版本(11.4.5)的versioncode(1104058)要低。

我按照这个链接在Ionic 2中设置Android版本号解决了这个问题。


2
Update both versionCode and versionName. 

minSdkVesion 16 
targetSdkVesion 26
versionCode 2
versionName 1.1

请问您能告诉我在哪里需要更新版本名称吗?正如我之前提到的,这是一个 Cordova 项目。这些是我在 XML 文件中拥有的值。 - Augustine Joseph
对我来说,它在我的 build.gradle (:app) 文件中。 - Cullub

2
在你的config.xml文件中的<widget>元素中,将android-versionCode属性增加一:
<widget id="com.example.foo" version="1.0.1" android-versionCode="10001" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">

之后,运行cordova clean androidcordova build android --release,我得到了一个.apk文件,可以被Google Play控制台接受。


1

你是否已经将versionCode从之前的版本升级了?

minSdkVesion 16 
targetSdkVesion 26
versionCode 1 //you need to upgrade it from previous one
versionName 1.0

我尝试了这个方法,但是我仍然得到相同的错误。但是当我将Android版本从6.3.0降低到5.2.2时,这个错误就被解决了。不确定为什么新版本不起作用。请问你能帮我修复吗?感谢你的帮助。 - Augustine Joseph

1
如果您正在使用Monaca Cloud IDE进行构建,并且遇到此错误“您无法使此版本可用,因为它不允许现有用户升级到已添加的新APK”,那么问题出在这里,当您尝试构建APK时,它会生成一个随机数。因此,请确保您的新更新“版本代码”大于此“10505”。您可以在Monaca Cloud IDE中设置版本代码。enter image description here

enter image description here


0
在您的项目根目录下会有一个config.xml文件。它包含一个小部件节点,该节点具有版本属性。例如:1.17.01,如下所示:<widget id="com.myapp.mobile" version="1.17.01" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">cordova prepare操作期间,此config.xml文件将合并到平台的清单文件中(例如,Android的platforms\android\app\src\main\AndroidManifest.xml)。合并后的清单文件将包含从config.xml中列出的版本生成的版本代码和版本字符串。例如:<manifest android:hardwareAccelerated="true" android:versionCode="11701" android:versionName="1.17.01" package="com.myapp.mobile" xmlns:android="http://schemas.android.com/apk/res/android">

这个版本代码11701将会在Play控制台上列出。 为了自动设置更高的版本,您可以在gradle.properties文件中添加一个变量设置cdvVersionCodeForceAbiDigit=true,它将自动将版本乘以10。请注意,此逻辑在平台应用程序文件夹根目录下的build.gradle文件中进行布置。使用cdvBuildMultipleApks变量切换其他逻辑以基于产品风味(arm、x86等)设置不同的值。但我认为今天推荐的方法是上传“bundle”,让Google自动生成各种设备配置的单独apk。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接