代码改变世界

[Android学习笔记]Unable to execute dex Multiple dex files define:xxxx 问题

2014-04-29 09:54  hellenism  阅读(245)  评论(0编辑  收藏  举报

dex filse:

Dalvik Execute Files , 即Android虚拟机可执行程序

 

从字面意思理解是你一个应用中,出现了多个Dex文件定义。

 

以下情况会出现此错误:

1.你项目中可能存在一个apk包,其中包含的文件定义与当前项目相同

2.你项目引入的jar包重复实现了相同的定义。(比如: a.jar引入了common.jar , 此时you project也引入了common.jar)

 


 

不同情况可能会出现这个问题,我遇到的问题是:

引入的多个jar包中,其中可能是第三方的SDK,但是其中可能使用了比较流行的开源框架,此时你项目中就有两套包名一样的代码,编译没问题,部署到手机之后就报如上错误

 

解决办法是:

把第三方jar包包含的开源代码删掉即可

 

比如:

项目中使用了android-async-http.jar , 同时引入 xxxxx.sdk.jar , 而由于xxxxx.sdk.jar中也引入了android-async-http.jar所以出现以上错误

 

解决步骤:

1.修改xxxx.sdk.jar为xxxx.sdk.jar.zip , 用资源管理打开它,删除android-async-http部分.

2.在把xxxx.sdk.jar.zip改回原来的名字

3.项目使用此包