Android 使用库时工作室冲突 类

Android Studio Conflicting Classes when using Library

我刚开始使用 Android Studio, 如果我无法正确解释情况,请原谅我。 但我会尝试根据需要更新细节。

在我的 gradle 项目中,我将 JakeWarton DiskCache 与 nineoldandroids 一起使用 两者都作为 jar 文件添加到 app/libs 文件夹。

此外,此位置还有一个库项目 https://android-arsenal.com/details/1/122

repositories {
    maven {
        url "https://jitpack.io"
    }
}

dependencies {
    compile 'com.github.flavienlaurent:datetimepicker:0f5d399995'
}

我通过添加存储库和依赖项来使用它,如上所示。

当我尝试 运行 这个项目时,出现以下错误

任务“:app:packageAllDebugClassesForMultiDex”执行失败。

java.util.zip.ZipException: duplicate entry: com/nineoldandroids/animation/Animator$AnimatorListener.class

我可以理解,因为我的应用程序有一个 nineoldandroids.jar 的副本,并且 lib-project 在编译时也需要它,所以出现了一些问题。

我该如何解决这个冲突?

com.github.flavienlaurent:datetimepicker:0f5d399995 正在使用 nineoldandroids 作为 Maven 依赖项的库。

dependencies {
    compile 'com.nineoldandroids:library:2.4.0'
    //...
}

Check the original build.gradle 文件在 github.

要解决您的问题,您必须:

  • 从您的项目中删除 nineoldandroids.jar
  • 在项目中添加 nineoldandroids 库作为 Maven 依赖项

使用:

dependencies{
 //
 compile 'com.nineoldandroids:library:2.4.0'
}