使用Gradle构建android项目的麻烦(多个dex文件)

时间:2014-12-10 00:53:13

标签: android gradle android-studio

自1.0发布以来,我终于转移到了AS ..我对Gradle没有太多经验,所以请耐心等待。我找到了几个似乎让我走上正轨的答案,但是,我还没有找到一个能帮助我的通用答案。 (大多数答案只是"用这个替换你的罐子......")。看起来好像我有一个依赖链接两次,但是,我不太确定在哪里...

这是我得到的错误

输出:

UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/view/PagerAdapter; 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.DexMerger.mergeClassDefs(DexMerger.java:533) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170) at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) at com.android.dx.command.dexer.Main.run(Main.java:230) at com.android.dx.command.dexer.Main.main(Main.java:199) at com.android.dx.command.Main.main(Main.java:103)

以下是我对主项目的依赖:

dependencies { compile project(':swipeBackLibrary') compile 'com.android.support:appcompat-v7:19.1.0' compile files('libs/android-support-v13.jar') compile files('libs/libGoogleAnalyticsServices.jar') }

我估计我在某处发生了碰撞。如何查看PagerAdapter获取其来源的位置?谢谢你们。

1 个答案:

答案 0 :(得分:3)

appcompat库包含支持库,它是复制的来源。由于您已将支持库作为jar文件包含在内而不是通过Maven坐标引用它,因此构建系统无法消除库的多个副本的歧义并防止出错。您可以通过转移到支持库的基于坐标的规范来修复它:

dependencies {
    compile project(':swipeBackLibrary')
    compile 'com.android.support:appcompat-v7:19.1.0'
    compile 'com.android.support:support-v13:19.1.0'
    compile files('libs/libGoogleAnalyticsServices.jar')
}