android:versionName是否必须是数字(形式为0.0.0等)?

时间:2013-02-10 21:55:48

标签: android android-ndk android-manifest

我尝试在我的android:versionName=">0.3"文件中使用AndroidManifest.xml(作为对自己的说明,以便在下一个版本中使用它),但NDK不喜欢它:

Invalid attribute name: 
C:/Android/android-ndk-r8d/build/gmsl/__gmsl:512: *** non-numeric second argument to `wordlist' function: ''.  Stop.

然而,the docs似乎表明我可以随心所欲地制作versionName

  

android:versionName

     

向用户显示的版本号。这个属性   可以设置为原始字符串或字符串资源的引用。的的   string没有其他目的,只能显示给用户。   versionCode属性包含使用的重要版本号   内部。

4 个答案:

答案 0 :(得分:3)

原来,NDK在versionName字符串上使用了一些有趣的GNU Make整数编码函数。看起来这些可以处理字母和一些特殊字符(例如?-/\+),但不能处理其他字符(例如, <>)。

我选择将.0附加到我的versionName的末尾,以表明下一个版本需要发生碰撞。在这种情况下,我正在使用0.3.0

(有关GMSL的整数算术函数的更多信息,请参阅the source的第494行)

更新

我们已切换为只添加+字符 - 0.3+。很好地工作。

答案 1 :(得分:1)

我使用命令dos2unix AndroidManifest.xml,它为我清除了错误。我希望有所帮助。

How to build Openssl for Android on Windows with ndk8?

答案 2 :(得分:0)

从技术上讲,你放在那里没有任何限制。

但是,请尽可能简单易懂,尤其是最终版本。

对于alpha / beta / RC /预览版本,您可以放置​​任何您想要的内容,但仍然可以放置某种版本号。

答案 3 :(得分:0)

只需在应用标记之前添加<uses-sdk android:minSdkVersion="8" />

这对我有用。