我刚刚在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'
}