我是一个新的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)
答案 0 :(得分:1)
将此添加到build.gradle:
configurations {
all*.exclude group: 'com.nineoldandroids'
}
适合我;)
答案 1 :(得分:0)
删除以下行并再试一次
compile 'com.android.support:support-v4:21.0.3'
答案 2 :(得分:0)
我是一个新的Android开发人员,不久我发布这个答案,我也面临同样的问题。谷歌搜索,只有2个stackoverflow问题出现了。您的问题,以及您在那里提供的stackoverflow问题。
不知何故,在通过项目结构(ctrl + alt + shift + s)删除未使用的依赖库之后,在我的情况下,它是
compile 'com.rengwuxian.materialedittext:library:1.8.2'
同步gradle然后噗!我希望它也适合你。
答案 3 :(得分:0)