更新到3.5.0后,Cordova构建错误

时间:2014-07-15 17:33:32

标签: android cordova cordova-3

我有一个完全在Cordova 3.4上构建的Android Cordova应用程序。我刚刚更新到Cordova 3.5.0并且构建失败,显示以下错误:

-code-gen:
[mergemanifest] Found Deleted Target File
[mergemanifest] Merging AndroidManifest files into one.
[mergemanifest] Manifest merger disabled. Using project manifest only.
     [echo] Handling aidl files...
     [aidl] No AIDL files to compile.
     [echo] ----------
     [echo] Handling RenderScript files...
     [echo] ----------
     [echo] Handling Resources...
     [aapt] Found Deleted Target File
     [aapt] Generating resource IDs...
     [aapt] D:\Proyectos\Trialtea\Proyecto 31 - Aplicaciones HTML5\05. Aplicaciones Google Play\phonegap_projects\InglesEn100DiasTurbo\platforms\andro
id\ant-build\AndroidManifest.xml:2: error: Error: Float types not allowed (at 'versionCode' with value 'NaN').

BUILD FAILED
D:\Recursos\Android_Development\adt-bundle-windows-x86_64-20130729\sdk\tools\ant\build.xml:653: The following error occurred while executing this line
:
D:\Recursos\Android_Development\adt-bundle-windows-x86_64-20130729\sdk\tools\ant\build.xml:698: null returned: 1

Total time: 5 seconds
Error code 1 for command: cmd with args: /s,/c,ant,debug,-f,D:\Proyectos\Trialtea\Proyecto 31 - Aplicaciones HTML5\05. Aplicaciones Google Play\phoneg
ap_projects\InglesEn100DiasTurbo\platforms\android\build.xml,-Dout.dir=ant-build,-Dgen.absolute.dir=ant-gen
Error: cmd: Command failed with exit code 2
    at ChildProcess.whenDone (C:\Users\Albert\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\src\cordova\superspawn.js:135:23)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:743:16)
    at Process.ChildProcess._handle.onexit (child_process.js:810:5)

第15行有一个关于错误的错误:不允许使用浮点类型(在' versionCode'有值' NaN' ,我是我不知道为什么会这样。我的项目根源是 config.xml 文件,版本代码设置为3,但出于某种原因,当我构建项目时,使用 versionCode =" NaN" 设置 AndroidManifest.xml

最后显示的错误我不知道这意味着什么,或者它是否与上述错误有关。

有人能帮我解决这个问题吗?

哦,在通过 npm 更新Cordova后,我还使用 cordova platform update android 更新了项目文件夹中的Android平台。

6 个答案:

答案 0 :(得分:17)

我已经解决了这个改变"版本" www / config.xml中的属性(即使它看起来不相关,因为问题出在versionCode上)。

只需添加第三个次要版本号,例如我从0.6更改为0.6.3

答案 1 :(得分:7)

使用cordova 3.5,config.xml中的属性应为android-versionCode="??"而不是versionCode="??"

答案 2 :(得分:1)

我刚才遇到了同样的问题。 cordova版本3.5.0-0.2.6的解决方案如下:

  1. 打开您的app config.xml。

  2. 编辑如下:

  3. **相应地更改 android-versionCode 值和版本值。

答案 3 :(得分:0)

手动更改versionCode

转到yourProject->platforms->android->AndroidManifest.xml

在第二行中,找到android:versionCode将其设置为"1"

然后尝试再次构建

答案 4 :(得分:0)

正如一些人已经建议的那样,对于v3.5,必须在<widget/>标记内的config.xml中设置versionCode。由于每个平台都是特定的,因此他们会在前面推荐平台名称。 版本=&#34; 0.0.1&#34;机器人-的versionCode =&#34; 2&#34; IOS-bundleVersion =&#34; 0.0.1&#34; WP-projectVersion =&#34; 0.0.1.0&#34; 详情请访问: https://issues.apache.org/jira/browse/CB-5093

Google Play商店不允许重复使用版本代码,因此必须增加。该版本没有,因此如果您在alpha期间进行快速修复,则可以保持不变。当然,当您进入制作时,您需要更加小心,以便让您的用户得到适当的信息。

答案 5 :(得分:-1)

您需要在node.js中运行以下命令:

cordova platform update android@5.0.0