使用cocos compile -p android时总是报错误 BUILD FAILED \ant\build.xml:892

使用cocos compile -p android时总是报错误 BUILD FAILED \ant\build.xml:892,第1张

概述http://www.cppblog.com/colorful/archive/2014/12/25/209298.aspx http://www.cocoachina.com/bbs/read.php?tid=215700 错误如下。。。但是使用eclipse生成apk包时不收影响。。 -dex:       [dex] input: E:\cocos\Mine\frameworks\runti

http://www.cppblog.com/colorful/archive/2014/12/25/209298.aspx


http://www.cocoachina.com/bbs/read.PHP?tID=215700
错误如下。。。但是使用eclipse生成apk包时不收影响。。

-dex:
[dex] input: E:\cocos\mine\frameworks\runtime-src\proj.androID\bin\classes
[dex] input: E:\cocos\mine\frameworks\Js-bindings\cocos2d-x\cocos\platform\androID\java\bin\classes.jar
[dex] Pre-Dexing E:\cocos\mine\frameworks\Js-bindings\cocos2d-x\cocos\platform\androID\java\bin\classes.jar -> classes-022efb48739f8be18b60e7464733537d.jar
[dex] Converting compiled files and external librarIEs into E:\cocos\mine\frameworks\runtime-src\proj.androID\bin\classes.dex...
[dx]
[dx] UNEXPECTED top-LEVEL EXCEPTION:
[dx] com.androID.dx.util.DexException: Multiple dex files define Lorg/cocos2dx/lib/Cocos2dxAccelerometer;
[dx] at com.androID.dx.merge.DexMerger.readSortableTypes(DexMerger.java:592)
[dx] at com.androID.dx.merge.DexMerger.getSortedTypes(DexMerger.java:550)
[dx] at com.androID.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:531)
[dx] at com.androID.dx.merge.DexMerger.mergeDexBuffers(DexMerger.java:168)
[dx] at com.androID.dx.merge.DexMerger.merge(DexMerger.java:186)
[dx] at com.androID.dx.command.dexer.Main.mergelibraryDexBuffers(Main.java:300)
[dx] at com.androID.dx.command.dexer.Main.run(Main.java:232)
[dx] at com.androID.dx.command.dexer.Main.main(Main.java:174)
[dx] at com.androID.dx.command.Main.main(Main.java:91)
[dx]

BUILD Failed
E:\BST\adt-bundle-windows-x86-20130917\sdk\tools\ant\build.xml:892: The following error occurred while executing this line:
E:\BST\adt-bundle-windows-x86-20130917\sdk\tools\ant\build.xml:894: The following error occurred while executing this line:
E:\BST\adt-bundle-windows-x86-20130917\sdk\tools\ant\build.xml:906: The following error occurred while executing this line:
E:\BST\adt-bundle-windows-x86-20130917\sdk\tools\ant\build.xml:284: null returned: 2
---------------------------
查资料发现,发现:
cocos compile 的脚本里会自动把“frameworks\Js-bindings\cocos2d-x\cocos\platform\androID\java\bin\classes.jar”(2dx的java代码)添加到classes.dex中。
而当用eclipse打开androID项目时,默认是没有引入2dx的java类的,此时如果想正常运行androID项目,需要引入2dx的jar包,或者引入2dx的java源码。
如 果引入java的源码,当再次执行“cocos compile”时,2dx的java源码生成的class文件,会跟默认引入的“frameworks\Js-bindings\cocos2d-x \cocos\platform\androID\java\bin\classes.jar”发生冲突,会报 “com.androID.dx.util.DexException: Multiple dex files define ……”的错误;
如 果不引入java源码,而是直接在“Build path”中引入了jar包(位于引擎的:frameworks\Js-bindings\cocos2d-x\cocos\platform \androID\java\bin\下的classes.jar),此时androID的项目不报错了,但是直接使用eclipse生成apk包时会发 现安装到手机上无法运行,这是因为项目需要的2dx文件没有被打入到apk中。此时,可以将对应的jar包放到androID项目的libs目录里 (frameworks\runtime-src\proj.androID\libs\),这样生成的apk包就可以正常运行了。
但是,如果这样做了,再次执行“cocos compile”时,发现还会报如上的错误,这是因为脚本里会默认将libs目录里的文件添加到classes.dex中。

综上所述:
出现如上错误的原因是在使用“cocos compile”脚本时,2dx文件被重复添加了。
不过,如果像我这样 *** 作,使用“cocos compile”编译脚本(主要是因为该脚本会将Js文件和资源拷贝的androID项目里),使用eclipse将androID项目打包成apk,可以忽略如上问题的;感觉很不爽。。。。
-------------解决方法
注释掉project.propertIEs文件中的#androID.library.reference.1=../cocos2d/cocos/platform/androID/java就可以啦!!! 总结

以上是内存溢出为你收集整理的使用cocos compile -p android时总是报错误 BUILD FAILED \ant\build.xml:892全部内容,希望文章能够帮你解决使用cocos compile -p android时总是报错误 BUILD FAILED \ant\build.xml:892所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1069677.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存