android - Gradle:多重依赖需要 slf4j

标签 android gradle pusher gimbal

我的 gradle 文件中有两个需要 slf4j 的库。推杆和万向节。这两个 jar 里都有 slf4j。因此,即使我告诉 gradle 忽略它们(multiDexEnabled true),我仍然会收到命名空间错误。

有谁知道如何解决这一问题?

com.android.dex.DexException: Multiple dex files define Lorg/slf4j/impl/StaticLoggerBinder;
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:502)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
at com.android.dx.command.dexer.Main.run(Main.java:277)
at com.android.dx.command.dexer.Main.main(Main.java:245)
at com.android.dx.command.Main.main(Main.java:106)
Error:Execution failed for task ':app:dexDebug'.
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2

我收到的错误(multiDexEnabled true):
Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'.
>java.util.zip.ZipException: duplicate entry: org/slf4j/helpers/BasicMarker.class

最佳答案

Multidex 解决了与您描述的问题非常不同的问题。 Multidex 修复了每个 dex 文件限制为约 65,000 个方法的问题。 You can find the documentation for multidex here .

相反,您想要做的是从您的一个库中排除 sl4j,这是一个可能看起来的示例,具体取决于导致问题的依赖项:

compile ('com.example.library:library-with-sl4j:1.0') {
    exclude group: 'org.sl4j', module: 'sl4j-simple'
}

您必须确定导致问题的库以及需要排除的 sl4j 模块。

理想情况下,您会通知使用旧版本的库作者他们应该更新,以便您的所有依赖项都使用相同的(最新)版本。

关于android - Gradle:多重依赖需要 slf4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33831600/

相关文章:

javascript - Pusher 在点击时触发所有订阅者的事件

java - 3/2 = 1.0?真的吗?

android - Android 会在 Activity 之前为 Singleton 释放内存吗?

android - ANR keyDispatchingTimedOut 报告 Google

gradle - Gradle找不到Gson 2.5

php - 异常 : Illuminate\Broadcasting\BroadcastException No message in PusherBroadcaster. php:119

android - Exoplayer如何显示下载进度

android - Google Play 游戏服务 + BaseGameUtils 添加到 Gradle 项目 = 包不存在

AndroidStudio Gradle 构建 ProGuard 重复 zip 条目错误

javascript - Laravel Pusher 前端未接收数据