Android Studio的Gradle添加重复依赖的问题

原创 2015年11月20日 22:33:20

Multiple dex files define Lcom/nineoldandroids/animation/Animator$AnimatorListener; 在Android Studio里build项目时不会报错,但是run项目的时候就会报上面的那个错误。这个问题纠结了我整整一天啊,虽然最终的确是解决了,然而到现在我还是没能完全弄懂原理。记录一下我解决这个问题的过程。

首先,遇到这个问题的时候,意料之外,情理之中。因为在用eclipse写Android的时候,也遇到过同样的问题,我知道是重复引用包的问题。当时将自己开发的项目里libs文件夹重复的jar包删掉就行,会自动引用library项目里的jar包。顺着这个思路,我将gradle文件里的compile ‘com.nineoldandroids.library:2.4.0’注释掉,然而并没有什么用。

然后,我思考了一下,觉得应该是其他依赖里也引用了nineoldandroids,可是这我就没办法了呀,这是通过gradle自动下载配置的呀。然后我就百度(再再再次强调,搜这种技术上的问题时,千千万万记得用Google,这次就又栽坑里了)了一下,大部分都是些重复的资料,或者是没人回复的求助信息。说来也惭愧,自己也没能帮助做些什么,希望篇博文能帮助到大家。

最后我去加入的几个Android学习交流群去提问。有人提示我说他也遇到过这个问题,他是将依赖的项目下载下来,作为module来引入到自己的项目里。我也将引用了nineoldandroids的那个项目下载下来这样去做,可是还是报错。实在是没办法了,采用终极办法,就是将依赖的那个项目源码和res文件直接copy到自己的项目里。好了,世界终于清静了,可是这种曲线救国的行为实在是很差的一种解决方式。不仅扰乱了自己的项目结构,也是治标不治本,假如下次又遇到这种问题,不是又得把源码粘贴复制过来?

第二天,接着写项目,实在是忍不了那杂乱的包,一定要解决这个问题才肯罢休!这次我翻过了那道墙,用了google来搜索这个问题。终于让我找到了解决方式。

compile('com.mxn.soul:flowingdrawer-core:1.2.0')
compile('com.rengwuxian.materialedittext:library:2.1.4') {
        exclude group: 'com.nineoldandroids'
}

flowingdrawer-core这个依赖里的libs文件夹下有nineoldandroids2.4.0.jar这个jar包。
materialedittext这个依赖里的gradle里compile ‘com.nineoldandroids.library:2.4.0’
所以会导致重复引用了jar包。在materialedittext的依赖里添加语句 exclude group: ‘com.nineoldandroids’,意思是编译的时候将group为com.nineoldandroids的所有library都去除在外,这样materialedittext就会自动去引用flowingdrawer-core项目里的nineoldandroids2.4.0.jar包了。到此问题解决了。

不过,我又进行了其他的尝试,我改成如下配置

compile('com.mxn.soul:flowingdrawer-core:1.2.0'){
       exclude group: 'com.nineoldandroids'
}
compile('com.rengwuxian.materialedittext:library:2.1.4') 

这样还是会出问题。想了想,应该是exclude语句只能在编译时将gradle文件里的依赖去除掉,而不能去掉libs文件里的jar包引用。

版权声明:本文为博主原创文章,未经博主允许不得转载。

解决Android Studio加载第三方jar包,出现包重复加载的问题:

UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Landroid/su...
  • yy1300326388
  • yy1300326388
  • 2015年02月12日 10:11
  • 11442

Android studio jar冲突 文件冲突 aar引用相同的文件 引用相同的jar包 重复导入相同依赖包

开发项目,多多少少都会引进一些第三方jar或者aar资源文件,方便开发个性化功能,但这样就经常会出现包冲突、文件冲突、重复导入资源或者导入俩个不同的包中包含有相同的文件资源呢!后果导致编译失败,提示错...
  • WX_JIN
  • WX_JIN
  • 2016年03月11日 10:03
  • 13137

Android Studio的Gradle添加重复依赖的问题

Multiple dex files define Lcom/nineoldandroids/animation/Animator$AnimatorListener; 在Android Studio里...
  • H_shaohui
  • H_shaohui
  • 2017年01月19日 11:25
  • 158

Android Studio的Gradle添加重复依赖的问题

http://blog.csdn.net/yisizhu/article/details/49952841 Multiple dex files define Lcom/nineolda...
  • wusj3
  • wusj3
  • 2017年10月31日 15:42
  • 92

【Gradle】Android Studio中Gradle重复依赖的问题

问题项目中有个Module需要解析json所以选用了依赖Gson,但是编译时报错如下:Error:Execution failed for task ':app:transformClassesWit...
  • u010983881
  • u010983881
  • 2017年02月23日 13:02
  • 2121

Android Studio(Gradle)解决库依赖冲突问题

最近在调整代码的时候,出现如下问题: 12345678910111213Cause: com.android.dex.DexException: Multiple dex files def...
  • Traject0ry
  • Traject0ry
  • 2016年10月12日 16:09
  • 418

Android Studio(Gradle)解决库依赖冲突问题

最近在调整代码的时候,出现如下问题: 12345678910111213Cause: com.android.dex.DexException: Multiple dex files def...
  • u010944680
  • u010944680
  • 2016年08月15日 16:57
  • 5678

Android Studio(Gradle)解决库依赖冲突问题

http://blog.csdn.net/yaya1943/article/details/53583173 Android Studio(Gradle)解决库依赖冲突问题 最近在...
  • wusj3
  • wusj3
  • 2017年10月31日 15:38
  • 140

Android Studio(Gradle)解决库依赖冲突问题

Android Studio(Gradle)解决库依赖冲突问题 最近在调整代码的时候,出现如下问题: 12345678910111213Cause: com.android.dex...
  • tiantaiaiqing
  • tiantaiaiqing
  • 2016年11月02日 21:08
  • 263

Android Studio(Gradle)解决库依赖冲突问题

Android Studio(Gradle)解决库依赖冲突问题 最近在调整代码的时候,出现如下问题: 12345678910111213Cause: com.android.dex...
  • yaya1943
  • yaya1943
  • 2016年12月12日 15:18
  • 2923
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android Studio的Gradle添加重复依赖的问题
举报原因:
原因补充:

(最多只允许输入30个字)