安卓版本名称/版本代码的最大长度(清单)

我正在尝试找出android清单文件的android:versionName和android:versionCode属性的最大长度?

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.xxxx.xxxx"
          android:versionCode="185"           <--- THIS ATTRIBUTE
          android:versionName="1.0.185">      <--- AND THIS ATTRIBUTE

是否有最大值,或者如果没有最大值,它几乎会允许任何事情,是否有某些规则?


答案 1

基于安卓文档:

android:versionCode — 一个值,表示应用程序代码相对于其他版本的版本。integer

编辑 - 安卓文档明确指出 -

警告:android:versionCode的最大可能值是MAXINT(2147483647)。但是,如果您上传具有此值的应用,则您的应用永远无法更新。

基于预言机文档:

默认情况下,数据类型为 32 位有符号二进制补码整数,其最小值为 -2^31,最大值为 (2^31)-1。在 Java SE 8 及更高版本中,可以使用 int 数据类型来表示无符号的 32 位整数,其最小值为 0,最大值为 (2^32)-1。int

android:versionName — 一个值,表示应用程序代码的发布版本,因为它应该向用户显示。string

关于最大长度,这个SO问题可能会对您有所帮助。String


答案 2

更新 08/11/2016 (UTC):

文档已更新。不是旧值或 2000000000。MAX_INT

警告:Google Play 允许的最大值为 2100000000versionCode


交叉发布以提高可见性请点击此处。

谷歌最近似乎发生了变化,最大只有2000000000。versionCode

参考帖子:Google Play 开发者控制台错误:您的 APK 版本号很高,您有无法更新 APK 的风险


PS:对于那些计划提供参考官方文档的人,其中提到的最大值2147483647,请先阅读我引用的帖子中的答案。它提到截至当前日期(08 / 10 / 2016),它仍未更新。


推荐