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

使用ZXing库扫描二维码时出现Program type already present错误求助

解决ZXing库依赖冲突导致的Program type already present错误

这个错误本质是项目中重复引入了ZXing的核心类,D8编译器检测到com.google.zxing.ChecksumException这个类被多次包含在不同的依赖包中,所以抛出了冲突报错。下面是具体的解决步骤:

1. 定位重复依赖的来源

首先你需要搞清楚到底是哪几个依赖带来了重复的ZXing类。在Android Studio的终端里执行以下命令(Windows系统用gradlew.bat代替./gradlew):

./gradlew app:dependencies

这个命令会输出你的app模块的完整依赖树,搜索com.google.zxing关键词,你就能看到哪些依赖库包含了ZXing的core模块——比如你可能同时引入了官方的com.google.zxing:core和第三方封装的zxing-android-embedded,而后者本身已经内置了ZXing core,这就导致了重复。

2. 移除或排除重复的依赖

找到重复的来源后,只需要保留其中一个即可:

  • 如果你用了zxing-android-embedded这类封装库,直接删掉单独引入的com.google.zxing:core依赖就行,因为封装库已经包含了核心类。
  • 如果你必须保留多个依赖,可以用exclude语法去掉重复的部分,比如:
    implementation 'com.journeyapps:zxing-android-embedded:4.3.0' {
        exclude group: 'com.google.zxing', module: 'core'
    }
    

3. 清理缓存并重建项目

修改完依赖后,一定要清理旧的编译缓存,避免残留的冲突文件影响:

  • 在Android Studio中点击Build > Clean Project,然后再点击Build > Rebuild Project
  • 或者用命令行执行:
    ./gradlew clean assembleDebug
    

4. 检查多模块项目的依赖传递

如果你的项目有多个模块(比如app模块+library模块),要确认是不是不同模块都单独引入了ZXing。这种情况下,建议只在基础模块中用api引入ZXing,其他模块通过依赖基础模块来间接使用,避免重复引入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:29:04