我目前正面临重复课程RuntimeException
。在当前的用例中,我们正在生成使用com.journeyapps:zxing-android-embedded
的工件。我们的客户希望包含我们的工件,但是他们在编译过程中得到了RuntimeException
。
发生异常是因为他们使用的com.google.zxing
当前与我们正在使用的zxing的travelapps端口冲突。 Journeyapps将ZXing Android应用程序移植为Android库项目,以嵌入到Android应用程序中。
Caused by: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Duplicate class com.google.zxing.client.android.camera.CameraConfigurationUtils found in modules android-core-3.3.0.jar (com.google.zxing:android-core:3.3.0) and classes.jar (com.journeyapps:zxing-android-embedded:3.6.0)
Go to the documentation to learn how to <a href="d.android.com/r/tools/classpath-sync-errors">Fix dependency resolution errors</a>.
at com.android.ide.common.workers.ExecutorServiceAdapter.await(ExecutorServiceAdapter.kt:56)
... 71 more
Caused by: java.lang.RuntimeException: Duplicate class com.google.zxing.client.android.camera.CameraConfigurationUtils found in modules android-core-3.3.0.jar (com.google.zxing:android-core:3.3.0) and classes.jar (com.journeyapps:zxing-android-embedded:3.6.0)
Go to the documentation to learn how to <a href="d.android.com/r/tools/classpath-sync-errors">Fix dependency resolution errors</a>.
at com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable.run(CheckDuplicateClassesDelegate.kt:132)
at com.android.ide.common.workers.ExecutorServiceAdapter$submit$submission$1.run(ExecutorServiceAdapter.kt:40)
... 72 more
我试图排除gradle构建文件中的重复类。使用以下代码,反之亦然。
implementation("com.google.zxing:android-core:3.3.0")
implementation("module which includes com.journeyapps:zxing-android-embedded:3.6.6") {
exclude group: 'com.google.zxing', module: 'android-core'
}
没有解决方案。 我什至试图排除配置中的模块。如果这样做,在插入依赖项时会丢失它。
您可以使用以下代码重现该错误
implementation("com.google.zxing:android-core:3.3.0")
implementation("com.journeyapps:zxing-android-embedded:3.6.0")
当我试图解决问题很多小时而没有解决方案时,我非常感谢每一个建议。
答案 0 :(得分:1)
这为我解决了
在Android/app/build.gradle
文件中添加以下代码
configurations {
compile.exclude group: 'com.google.zxing'
}
答案 1 :(得分:0)
尝试使用此传递标志可能会帮助您
implementation("module which includes com.journeyapps:zxing-android-embedded:3.6.6") {
exclude group: 'com.google.zxing', module: 'android-core'
transitive = false
}
答案 2 :(得分:0)
我们得出的结论是,不能排除依赖项,因为在某些使用com.journeyapps:zxing和com.google.zxing的类的情况下,它们是一个命名问题。
我们最终将库从com.journeyapps:zxing迁移到com.google.zxing。
感谢PJain的建议。