Android Studio构建失败 - 执行任务“:app:dexDebug”失败

3
我是一名新的Android开发者,构建文件总是让我感到害怕。 :D 我在项目中使用了一些第三方库。
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:21.0.+'
    compile 'com.android.support:support-v4:21.0.3'
    compile 'com.android.support:cardview-v7:21.0.+'
    compile 'com.android.support:recyclerview-v7:21.0.+'
    compile 'de.hdodenhof:circleimageview:1.2.1'
    compile 'com.github.flavienlaurent.datetimepicker:library:0.0.2'
}

除此之外,我还使用了MPAndroidChart(lib文件夹中唯一的jar包),它只能作为一个jar文件而不是gradle依赖项使用。
MPAndroidChart使用NineOldAndroids作为依赖项,我怀疑我的其他库也使用它,并且导致构建失败。
有什么想法可以让这两个库都正常工作吗?
我查看了类似的问题,并找到了一个与我的问题完全相同的问题 - Gradle error - Execution failed for task ':app:dexDebug'
但他自己包含了NineOldAndroids库。所以他只需删除那行代码就可以了。
我想到的一个想法是拆开jar并将它们作为Java文件包含在我的项目中,但这似乎对于这个问题来说过于繁琐。我相信肯定有更简单的方法?
这是我的整个错误信息。
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/nineoldandroids/animation/ValueAnimator$AnimatorUpdateListener;
    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)


 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:dexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    C:\Users\manu.joseph\AppData\Local\Android\sdk\build-tools\21.1.2\dx.bat --dex --no-optimize --output C:\Users\manu.joseph\AndroidStudioProjects\WriteTrack\app\build\intermediates\dex\debug --input-list=C:\Users\manu.joseph\AndroidStudioProjects\WriteTrack\app\build\intermediates\tmp\dex\debug\inputList.txt
Error Code:
    2
Output:

    UNEXPECTED TOP-LEVEL EXCEPTION:
    com.android.dex.DexException: Multiple dex files define Lcom/nineoldandroids/animation/ValueAnimator$AnimatorUpdateListener;
        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)
4个回答

1
将以下内容添加到您的build.gradle文件中:
 configurations {
    all*.exclude group: 'com.nineoldandroids'
}

对我来说运行良好 ;)


这可能有效。当然,我无法验证它。我放弃了MPAndroidChart并实现了HelloCharts。但还是感谢你的回答。 - Manu Joseph

0

删除以下行并重试

compile 'com.android.support:support-v4:21.0.3'

0

我是一名新的安卓开发者,在发布这个答案之前不久,我也遇到了同样的问题。通过谷歌搜索,只有两个stackoverflow问题出现了。你的问题和你提供的stackoverflow问题。

不知何故,在我通过项目结构(ctrl+alt+shift+s)删除未使用的依赖库后,我的情况是

compile 'com.rengwuxian.materialedittext:library:1.8.2'

同步Gradle,然后咻!希望这对你也有效。


我没有添加那个依赖项.. :( - Manu Joseph

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接