我试图找出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
是否存在最大值,或者如果没有最大值,它会允许什么吗?是否存在某些规则?
发布于 2014-06-16 14:38:48
android:versionCode -相对于其他版本,表示应用程序代码版本的integer
值。
编辑- Android文档明确声明-
警告: android:versionCode最大的价值是MAXINT (2147483647)。但是,如果您上传了一个具有此值的应用程序,则您的应用程序将永远无法更新。
默认情况下,int
数据类型是一个32位有符号的2的补整数,其最小值为-2^31,最大值为(2^31)-1。在Java 8及更高版本中,您可以使用int数据类型来表示一个无符号32位整数,其最小值为0,最大值为(2^32)-1。
android:versionName -表示应用程序代码的发布版本的string
值,应该显示给用户。
关于String
最大长度,这个问题可以帮助您。
发布于 2016-08-10 07:35:34
2016年11月8日更新(世界协调时):
文档已经更新。不是旧的MAX_INT
值或2000000000。
警告:谷歌游戏给
versionCode
带来的最大价值是2100000000。
交叉柱在这里的能见度。
谷歌最近似乎发生了变化,最大versionCode
仅为2000000000。
参考资料:Google控制台错误:您的APK版本代码很高,您可能无法更新APK。
PS:对于那些计划提供参考的正式文件,其中提到的最大值是2147483647,请阅读我参考的文章的答案。它提到,截至目前日期(2016年10月8日),它仍未更新。
发布于 2014-06-16 14:39:22
让我们看看网站。
versionCode是整数
versionName是一个字符串。
android:versionCode -一个整数值,表示应用程序代码的版本,相对于其他版本。该值是一个整数,以便其他应用程序能够以编程方式对其进行评估,例如检查升级或降级关系。您可以将值设置为任意整数,但应确保应用程序的每个连续发行版都使用更大的值。系统不强制执行此行为,但通过连续发布增加值是规范的。通常,您将发布versionCode设置为1的应用程序的第一个版本,然后在每个版本中单调地增加值,而不管发行版是主要版本还是次要版本。这意味着android:versionCode值不一定与用户可以看到的应用程序发布版本有很大的相似之处(参见下面的android:versionName )。应用程序和发布服务不应向用户显示此版本值。
所以版本代码是一个整数。它没有指定标牌或位数,但我们可以假设它不可能是负的,并猜测32位。所以我们可以猜测它可能在0到2^32之间。默认情况下,Java对32位整数进行了签名,以便提供从-2^31到2^31之间的值。当然,如果它是一个64位整数,那么它将介于0和2^64之间。
android:versionName -一个字符串值,表示应用程序代码的发布版本,应该向用户显示。值是一个字符串,因此您可以将应用程序版本描述为..。字符串,或作为任何其他类型的绝对或相对版本标识符。与android:versionCode一样,系统不将此值用于任何内部目的,只允许应用程序将其显示给用户。发布服务还可以提取android:versionName值,以便显示给用户。
这是一个字符串,所以它没有最大值。
https://stackoverflow.com/questions/24246143
复制相似问题