使用cocos compile -p android时总是报错误 BUILD FAILED \a
发布时间:2020-12-14 16:28:24 所属栏目:百科 来源:网络整理
导读: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:cocosMineframeworksruntime-srcproj.androidbin
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:cocosMineframeworksruntime-srcproj.androidbinclasses [dex] input: E:cocosMineframeworksjs-bindingscocos2d-xcocosplatformandroidjavabinclasses.jar [dex] Pre-Dexing E:cocosMineframeworksjs-bindingscocos2d-xcocosplatformandroidjavabinclasses.jar -> classes-022efb48739f8be18b60e7464733537d.jar [dex] Converting compiled files and external libraries into E:cocosMineframeworksruntime-srcproj.androidbinclasses.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:BSTadt-bundle-windows-x86-20130917sdktoolsantbuild.xml:892: The following error occurred while executing this line: E:BSTadt-bundle-windows-x86-20130917sdktoolsantbuild.xml:894: The following error occurred while executing this line: E:BSTadt-bundle-windows-x86-20130917sdktoolsantbuild.xml:906: The following error occurred while executing this line: E:BSTadt-bundle-windows-x86-20130917sdktoolsantbuild.xml:284: null returned: 2
---------------------------
查资料发现,发现: cocos compile 的脚本里会自动把“frameworksjs-bindingscocos2d-xcocosplatformandroidjavabinclasses.jar”(2dx的java代码)添加到classes.dex中。 而当用eclipse打开android项目时,默认是没有引入2dx的java类的,此时如果想正常运行android项目,需要引入2dx的jar包,或者引入2dx的java源码。 如 果引入java的源码,当再次执行“cocos compile”时,2dx的java源码生成的class文件,会跟默认引入的“frameworksjs-bindingscocos2d-x cocosplatformandroidjavabinclasses.jar”发生冲突,会报 “com.android.dx.util.DexException: Multiple dex files define ……”的错误; 如 果不引入java源码,而是直接在“Build path”中引入了jar包(位于引擎的:frameworksjs-bindingscocos2d-xcocosplatform androidjavabin下的classes.jar),此时android的项目不报错了,但是直接使用eclipse生成apk包时会发 现安装到手机上无法运行,这是因为项目需要的2dx文件没有被打入到apk中。此时,可以将对应的jar包放到android项目的libs目录里 (frameworksruntime-srcproj.androidlibs),这样生成的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就可以啦!!!
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- xcode – CKSMSComposeRemoteViewController超时等待来自co
- ruby – 从标记中提取HTML5数据属性
- NOSQL(二)聚合数据模型
- Cocos2dx下使用JNI技术调用jar包里面的一些方法遇到的一些问
- xcode – 将多个字符串添加到字符串
- 嵌入式系统文件系统比较 jffs2, yaffs, cramfs, romfs, ram
- 小程序开发必看!一篇文章让你了解 Flex 布局 | 小程序学院
- Ajax等待返回结果时,
- c# – WP8.1应用程序在调用RequestProductPurchaseAsync时崩
- ruby-on-rails – 如何删除“DEPRECATION:stub!已弃用.改