【问题标题】:How to find dependency conflict in Gradle如何在 Gradle 中查找依赖冲突
【发布时间】:2014-12-16 20:38:47
【问题描述】:

我正在尝试将 Nineoldandroid 库添加到我的项目中,但我找不到我的依赖问题发生的位置。 我的依赖:

dependencies {
   compile files('src/main/libs/guice-3.0-no_aop.jar')
   compile files('src/main/libs/javax.inject-1.jar')
   compile files('src/main/libs/roboguice-2.0.jar')
   compile files('src/main/libs/junit-4.11.jar')
   compile files('src/main/libs/hamcrest-core-1.3.jar')
   compile 'com.squareup:otto:1.3.5'
   compile 'com.google.android.gms:play-services:6.1.11'
   compile 'com.android.support:support-annotations:20.0.0'
   compile 'com.android.support:appcompat-v7:21.0.0'
   compile 'com.android.support:support-v4:21.0.0'
   compile 'com.google.code.findbugs:jsr305:1.3.9'
   compile 'io.nlopez.smartlocation:library:2.0.7'
   compile ('com.nineoldandroids:library:2.4.0'){
      exclude module: 'appcompat-v7'
      exclude module: 'support-v4'
      exclude module: 'support-annotations'
      exclude group: 'com.google.android'
      exclude group: 'com.google.android.*'
      exclude group: 'com.google.code.findbugs'
      exclude group: 'com.android.dx'
   }
   //compile project(':android-spinwheel')
}

我得到的错误:

Error:Execution failed for task ':app:dexDebug'.
    > com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    /home/usr/soft/android-studio/sdk/build-tools/21.0.1/dx --dex --num-threads=4 --output /home/usr/vc/android-local/app/build/intermediates/dex/debug /home/usr/vc/android-local/app/build/intermediates/classes/debug /home/usr/vc/android-local/app/build/intermediates/dependency-cache/debug /home/usr/vc/android-local/app/build/intermediates/pre-dexed/debug/internal_impl-21.0.0-d8c58b966f1337ac583be7169abe38eafaaea523.jar /home/usr/vc/android-local/app/build/intermediates/pre-dexed/debug/hamcrest-core-1.3-42a42e6ec38e3a6ec6a99347d11a9296a04eca00.jar /home/usr/vc/android-local/app/build/intermediates/pre-dexed/debug/classes-3528df59bfffc0f1961007c5282087aa82de987f.jar /home/usr/vc/android-local/app/build/intermediates/pre-dexed/debug/guice-3.0-no_aop-91a65442530b2d5fb3bf96359d70d249985649f6.jar /home/usr/vc/android-local/app/build/intermediates/pre-dexed/debug/otto-1.3.5-c4d763fed0f5fe8a97ac31f49ba37d2cd1567ad8.jar /home/usr/vc/android-local/app/build/intermediates/pre-dexed/debug/classes-8250441981c0a4195e9e6068c3efdb149c0dedfd.jar /home/usr/vc/android-local/app/build/intermediates/pre-dexed/debug/classes-f112c8b8d83a64a7f22e07537d04c10f33f5ab35.jar /home/usr/vc/android-local/app/build/intermediates/pre-dexed/debug/jsr305-1.3.9-4b2d061766ae6ca309e240b50953cd2ffef968a0.jar /home/usr/vc/android-local/app/build/intermediates/pre-dexed/debug/roboguice-2.0-6654a0e822af0f9305ce06f00f0d4e61dfab50fd.jar /home/usr/vc/android-local/app/build/intermediates/pre-dexed/debug/classes-ae9e0725b0368edcf3df124ccecd0b5e1ad65358.jar /home/usr/vc/android-local/app/build/intermediates/pre-dexed/debug/javax.inject-1-f4b5053b6356ac4792c8e5f52c58c62ca27a07cb.jar /home/usr/vc/android-local/app/build/intermediates/pre-dexed/debug/junit-4.11-2882cc48337848b98707492071ee6cb29be1a828.jar /home/usr/vc/android-local/app/build/intermediates/pre-dexed/debug/library-2.4.0-75e51598c065016181fac0cecd368e796b5769a8.jar /home/usr/vc/android-local/app/build/intermediates/pre-dexed/debug/support-annotations-21.0.0-ecd4ef2c68ca29b6a76021f4c9ef5fc3656e79db.jar
Error Code:
2
Output:
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:302)
at com.android.dx.command.dexer.Main.run(Main.java:245)
at com.android.dx.command.dexer.Main.main(Main.java:214)
at com.android.dx.command.Main.main(Main.java:106)

如您所见,我已经尝试了所有我能想到的排除方法,我希望我以正确的方式使用它。

【问题讨论】:

    标签: android gradle dependencies dependency-management


    【解决方案1】:

    您正在使用的 SpinnerWheel 库将过时版本的 Nineoldandroids 添加为 jar。您将需要删除它并添加更新的 gradle 依赖项或将 jar 更新到您在主 gradle 文件中指定的版本。

    在最近(撰写本文时),我在做同样的事情,遇到了同样的问题。花了一段时间才找到,因为 Android Studio 隐藏了 libs 目录,所以我不得不导航到该文件夹​​以删除 jar。

    如果您不再使用 SpinnerWheel 库,那么在您的其他依赖项之一中也会发生同样的事情。

    【讨论】:

      【解决方案2】:

      我遇到了与您类似的问题,但与 Otto 库有关。我的问题是我的 libs 文件夹中有一个 jar,并且我从 maven repository 添加了同一个库的另一个版本(分支)。如果我删除其中一个,这个问题就解决了,但我需要它们两个。那是因为我想用AndroidAnnotations

      但我不知道该怎么做。

      回到你的问题,我可以看到你可以这样解决:

      你必须找到你添加的哪个库与nineoldandroids库有依赖冲突。您必须将它们一一删除并找到它们中的哪一个。发现后尝试解决这两个库之间的冲突。

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-25
        相关资源
        最近更新 更多