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