eclipse adt 引入第三方jar包报错

eclipseadt引入第三方jar包后写代码没报错,但运行程序时控制台报错“无法执行dex:MultipledexfilesdefineLcom/alibaba/fas... eclipse adt 引入第三方jar包后写代码没报错,但运行程序时控制台报错 “无法执行 dex: Multiple dex files define Lcom/alibaba/fastjson/JSONStreamAware;”,如何解决? 展开
 我来答
育知同创教育
2016-08-08 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
以前用eclipse开发android项目遇到过这样的编译问题, 错误信息如下:
com.android.dex.DexException: Multiple dex files define Lcom/alibaba/fastjson/JSONStreamAware;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
at com.android.dx.command.dexer.Main.run(Main.java:230)
at com.android.dx.command.dexer.Main.main(Main.java:199)
at com.android.dx.command.Main.main(Main.java:103)

导致这个编译错误的原因如上, 当是只要jar包改成同一个文件, 就会编译通过 (由于编译出的class文件的版本不一致, 导致无法合并),
然而在anroid studio中, 这样做并无卵用.
我是这样做的: 将不同的library共同引用的jar包放在一个目录下(project跟目录的libs木下), 并配置如下gradle脚本
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile fileTree(dir: '../libs', include: '*.jar')
}
最终解决方案:
把module下面的libs目录下的jar包(其他项目也引用的那个jar)删除, 并配置改module的gradle脚本(注意: 各个library引用的库的版本必须一致------------红色标出部分一致)

dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile 'com.alibaba:fastjson:1.1.43'}

注: 这样依赖的是maven仓库中的jar或则aar.
更多追问追答
追问
你好,你这个解决方案是针对eclipse吗?我用的是,eclipse看不懂
追答
是eclipse啊
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式