通过研究,我发现冲突是由于两个库都使用nineoldandroid作为依赖。我测试并看到Float Labeled EditText带领我的项目在gradle同步时在我的外部库中添加“library-2.4.0.jar”,而Material Design Library包含“nineoldandroids-2.4.0.jar”文件“/库”。
我试图删除重复在这里和那里,寻找解决方案几个小时,但仍然没有运气。
在这种情况下,jar文件名是由于dex合并失败导致多个dex错误的原因吗?或者,DexMerger足够聪明地弄清楚两个不同的jar文件实际上是相同的依赖关系?我不得不说,我仍然不清楚DexMerger是如何工作的。
下面是我得到的错误:
Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
...
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/nineoldandroids/animation/Animator$AnimatorListener;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)
at com.android.dx.merge.