Java MPAndroidChart

Java MPAndroidChart,java,android,mpandroidchart,Java,Android,Mpandroidchart,在我的项目中,使用库。当我同时添加库MPchart时,我得到了这个错误,并且不明白出了什么问题。多谢各位 UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Lcom/nineoldandroids/animation/Animator$AnimatorListener; at com.android.dx.merge.DexMerger.readSortableT

在我的项目中,使用库。当我同时添加库MPchart时,我得到了这个错误,并且不明白出了什么问题。多谢各位

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/nineoldandroids/animation/Animator$AnimatorListener;
    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)
    at com.android.dx.command.dexer.Main.run(Main.java:246)
    at com.android.dx.command.dexer.Main.main(Main.java:215)
    at com.android.dx.command.Main.main(Main.java:106)
材料设计库的build.gradle:

dependencies {
  compile 'com.nineoldandroids:library:2.4.+'
  compile 'com.android.support:support-v4:21.0.3'
}
以及项目的build.gradle:

dependencies {
  compile fileTree(dir: 'libs', include: ['*.jar'])
  compile 'com.android.support:support-v4:21.0.3'
  compile 'com.android.support:appcompat-v7:21.0.3'
  compile 'com.android.support:recyclerview-v7:21.0.0'
  compile 'com.nineoldandroids:library:2.4.+'
  compile project(":MaterialDesign")
  compile project(":MPChartLib")
  compile files('libs/opencsv-2.4.jar')
}. 
如果我去掉依赖性,我会得到其他错误。
我能做什么?

您似乎在
MPChartLib
和您的项目中声明了一个依赖项
com.ninealdroids:library:2.4.+
。这就是问题的根源

尝试从项目中删除依赖项,但将其保留在MPChartLib中,以便dextool只看到它一次。您的新build.gradle将如下所示:

dependencies {
  compile fileTree(dir: 'libs', include: ['*.jar'])
  compile 'com.android.support:appcompat-v7:21.0.3'
  compile 'com.android.support:recyclerview-v7:21.0.0'
  compile project(":MaterialDesign")
  compile project(":MPChartLib")
  compile files('libs/opencsv-2.4.jar')
}


对Android支持库也要这样做。应该只声明一次,否则会出现类似的错误。

这意味着您有两个库共享相同的依赖项(
Animator.class
),并且您正在导入这两个库。检查要添加到项目中的JAR文件和渐变依赖项,确保定义
Animator
的文件只包含一次。这应该是正确答案。MPAndroidChart使用NineoldRoids库以及项目中的其他库。正如我在第一篇文章中所说,该库
'com.nineoldRoids:library:2.4.+'也用于
材料设计
。如果删除项目中的依赖项,则不会改变任何内容,因为Material Design和
MPChartLib
使用'com.nineodeldroids:library:2.4.+'。您还有其他建议吗?关于MPAndroidChart,您可以做的是克隆存储库,而不是使用.jar文件,并从库依赖项中删除NineodRoid。然后将MPAndroidChart库添加到项目中。