【问题标题】:Android Studio Conflicting Classes when using Library使用库时的 Android Studio 冲突类
【发布时间】:2015-11-26 18:49:54
【问题描述】:

我刚开始使用 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:重复条目:com/nineoldandroids/animation/Animator$AnimatorListener.class

我可以理解,由于我的应用程序有一份 Nineoldandroids.jar 副本,并且 lib-project 在编译时也需要它,因此存在某种问题。

我该如何解决这个冲突?

【问题讨论】:

  • 您可以删除 Nineoldandroids.jar 并使用 compile 'com.nineoldandroids:library:2.4.0'
  • @Gabriele Mariotti 您的解决方案运行良好。对不起,我不能早点回复。但是我不得不问,如果有两个外部库使用一个公共的依赖 jar 文件打包作为其源代码的一部分。
  • 可以在不同的模块中使用同一个jar(同一个版本)。这里的问题是您的库具有与 Nineoldandroids 的 maven 依赖项,而您的 jar 文件具有相同的库。如果没问题,我会将其报告为帮助其他用户的答案。
  • @Gabriele Mariotti 好的,您可以将其报告为答案。它确实解决了我的问题,再次感谢。

标签: android-studio gradle conflict nineoldandroids


【解决方案1】:

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'
}

【讨论】:

    猜你喜欢
    • 2018-10-20
    • 2018-06-18
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 2018-01-28
    • 2021-04-18
    相关资源
    最近更新 更多