3

Я новый разработчик Android и файлы сборки всегда пугают меня. : D Я использую некоторые библиотеки третьей части в проектеAndroid Studio Build fail - Выполнение неудачно для задачи ': 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 папки), которая доступна только в виде файла банки, а не Gradle зависимость.

MPAndroidChart использует NineOldAndroids в качестве зависимости, и я подозреваю, что одна из моих других библиотек также использует его, и это приводит к сбою сборки.

Любая идея, как вести себя обе эти библиотеки?

Я проверил подобные вопросы и нашел тот, который был именно мой проблемно Gradle error - Execution failed for task ':app:dexDebug'

Но он был в том числе библиотеку NineOldAndroids самостоятельно. Поэтому он просто удалил эту линию, и она работала.

Одна из идей, которые я имел, заключалась в том, чтобы разделить банку и включить их в качестве 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. Но спасибо за ответ. –

0

Удалить следующую строку и повторите попытку

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

I попробовал это, и он все еще не работает .. бросает ту же ошибку ... –

0

Я новый андроид разработчик и не задолго до того, я отправляю этот ответ, я столкнулся та же проблема. Появился поиск в Google и только 2 вопроса о стеке. Ваш вопрос и вопрос, который вы указали там.

Как-то, после того как я удалить неиспользуемую библиотеку зависимостей с помощью структуры проекта (Ctrl + Alt + Shift + S), в моем случае, это

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

синхронизируют Gradle, а затем пуф! Надеюсь, это сработает и для вас.

+0

У меня нет этой зависимости добавлено .. :( –

0

В конце концов, я закончил тем, что добавил библиотеку в качестве внешнего проекта, который сделал трюк для меня.

Подробные инструкции здесь .. How do I add a library project to Android Studio?

Надеется, что это помогает кто-то ..