Android versionName/versionCode(Manifest)的最大长度

Apq*_*pqu 10 java android manifest maxlength android-manifest

我试图找出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
Run Code Online (Sandbox Code Playgroud)

是否存在最大值,或者如果没有最大值,是否存在某些规则,它是否会允许任何内容?

kos*_*osa 14

基于android文档:

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

编辑 - Android文档明确指出 -

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

基于oracle文档:

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

android:versionName - string表示应用程序代码的发行版本的值,因为它应该向用户显示.

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


AL.*_*AL. 9

更新08/11/2016(UTC):

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

警告:Google Play允许的最大值versionCode2100000000.


在这里交叉发布可见性.

最近谷歌似乎发生了一次变化,最多versionCode只有200亿.

参考文章:Google Play Developer Console错误:您的APK版本代码很高,您可能无法更新自己的APK


PS:对于那些计划提供上述最大值为2147483647 的官方文档的人,请在我引用的帖子中首先阅读答案.它提到截至当前日期(2016年10月8日),它仍未更新.