我刚刚在Android Studio中创建了一个新项目,并希望将UserVoice Java SDK添加为依赖项。

我将compile 'com.uservoice:uservoice-java:0.0.2'行添加到依赖关系块中的app build.gradle文件中。

当我尝试构建时,它将导致构建失败

Output:
    UNEXPECTED TOP-LEVEL EXCEPTION:
    com.android.dex.DexException: Multiple dex files define Lorg/apache/commons/collections/Buffer;
        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)

此时,我还没有以任何方式修改该项目。
有什么方法可以排除令人讨厌的依赖关系并让UserVoice SDK正常工作?

谢谢!

最佳答案

上面的代码对我不起作用,需要的是从uservoice中排除commons-collection依赖项。

compile('com.uservoice:uservoice-java:0.0.2'){
    exclude group: 'commons-collections'
}

加上以下内容,它可以与gradle一起很好地玩:
packagingOptions {
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE.txt'
}

10-04 19:59