You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android应用引入Zxing库遇Program type already present错误求助

解决"Program type already present: com.google.zxing.client.android.camera.open.OpenCameraInterface"冲突问题

这个错误的核心原因是重复依赖冲突:你正在使用的com.dlazaro66.qrcodereaderview库本身已经内置了zxing的部分核心类(包括报错的OpenCameraInterface),而新增的com.journeyapps:zxing-android-embedded库也包含了相同的类文件,导致Gradle无法编译。

下面是具体的解决步骤:

1. 确认冲突来源

首先,通过Gradle依赖树查看具体的依赖关系,确认重复类的来源:

  • 在Android Studio的Terminal中执行命令:
    # Mac/Linux系统
    ./gradlew app:dependencies
    
    # Windows系统
    gradlew.bat app:dependencies
    
  • 在输出结果中搜索com.google.zxing.client.android,你会看到该类同时来自com.dlazaro66.qrcodereaderview和com.journeyapps:zxing-android-embedded相关的子依赖。

2. 排除重复的依赖模块

修改你的Module级别build.gradle中新增的zxing依赖,通过exclude关键字去掉与原有库重复的模块。示例如下:

implementation('com.journeyapps:zxing-android-embedded:4.3.0') { // 替换为你实际使用的版本号
    // 排除与dlazaro库重复的zxing核心及Android公共模块
    exclude group: 'com.google.zxing', module: 'core'
    exclude group: 'com.journeyapps', module: 'zxing-android-common'
}

这样配置后,Gradle会只引入zxing-android-embedded中新增条形码识别需要的部分,复用原有com.dlazaro66.qrcodereaderview中的zxing核心类,避免重复冲突。

3. 验证并编译

同步Gradle项目(点击Android Studio右上角的"Sync Now"按钮),然后重新编译项目。如果还有其他重复类的报错,可以按照同样的方法,在依赖树中找到对应的模块并排除。

另外,如果上述方法仍有问题,也可以考虑升级com.dlazaro66.qrcodereaderview到最新版本,看看是否与zxing-android-embedded的依赖兼容。

内容的提问来源于stack exchange,提问作者LRuf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:12:51