我目前面临着重复的课程
RuntimeException
。在我们当前的用例中,我们正在生成一个使用 com.journeyapps:zxing-android-embedded
的工件。我们的客户想要包含我们的工件,但他们在编译过程中得到了 RuntimeException
。
发生异常是因为他们使用的是 com.google.zxing
,目前与我们正在使用的 zxing 的旅程应用程序端口发生冲突。 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")
由于我尝试了很多小时都没有解决问题,所以我非常感谢每一个建议。
这个解决了我的问题
在
Android/app/build.gradle
文件中添加以下代码
configurations {
compile.exclude group: 'com.google.zxing'
}
尝试使用这个传递标志也许这可以帮助你
implementation("module which includes com.journeyapps:zxing-android-embedded:3.6.6") {
exclude group: 'com.google.zxing', module: 'android-core'
transitive = false
}
感谢您的评论,我解决了如下图所示的问题
dependencies {
configurations.all {
exclude group: 'com.google.zxing'
}
}
android {
compileSdkVersion 33
defaultConfig {
minSdkVersion 17
generatedDensities = []
multiDexEnabled true
versionCode 1
versionName "1.0.0"
}
aaptOptions {
additionalParameters "--no-version-vectors"
}
}
我们得出的结论是,我们不能排除依赖项,因为在某些具有 com.journeyapps:zxing 和 com.google.zxing 的类的情况下,它们是命名问题。
我们最终将我们的库从 com.journeyapps:zxing 迁移到 com.google.zxing。
感谢 PJain 的建议。
我应该如何迁移库?