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到自己的项目里。好了,世界终于清静了,