3

我是一名新的Android开发人员,构建文件总是吓到我。 :d 我使用一些第三方的库项目Android Studio构建失败 - 任务执行失败':app:dexDebug'

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文件,而不是gradle这个依赖。

MPAndroidChart使用NineOldAndroids作为依赖,我怀疑我的其他库之一也使用它,它导致构建失败。

任何想法如何使这些库的行为?

我检查了类似的问题,发现一个,这是正是我problem- 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) 

回答

1

添加到您的build.gradle:

configurations { 
    all*.exclude group: 'com.nineoldandroids' 
} 

工作正常,我;)

+0

这可能工作。我当然无法验证它。我抛弃了MPAndroidChart并实现了HelloCharts。但谢谢你的答案。 – 2015-02-22 15:40:27

0

删除以下行,然后再试一次

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

我试过了,它仍然没有工作..抛出相同的错误... – 2015-02-12 06:29:33

0

我是一个新的Android开发人员,没多久,我发布这个答案,我面对也是同样的问题。谷歌搜索和只有2 stackoverflow问题出现了。你的问题,以及你在那里提供的stackoverflow问题。

不知怎的,当我通过项目结构删除未使用的依赖库(CTRL + ALT + SHIFT + S),于我而言,这是

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

同步的gradle这个,然后噗!我希望它也适用于你。

+0

我没有那个依赖项添加.. :( – 2015-02-12 13:47:01

相关问题