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

org.opencv.BuildConfig重复定义:Android Release构建失败求助

解决Release构建时OpenCV重复类冲突问题

我更新了一个.aar依赖,该新版本中新增了OpenCV依赖;当前项目里还有另一依赖也引入了OpenCV,但版本不同。Debug构建可正常运行,但执行Release构建时出现以下错误:

AGPBI: {"kind":"error","text":"Type org.opencv.BuildConfig is defined multiple times: /[myPath]canoa/build/.transforms/bf16c92d6dcc96ca8411ea3aa706b978/transformed/jetified-canoa-sdk_2.3.0-runtime/dex/classes.dex, [myPath]/app/build/intermediates/external_libs_dex/prodRelease/mergeExtDexProdRelease/classes5.dex","sources":[{"file":"[myProjectPath]canoa/build/.transforms/bf16c92d6dcc96ca8411ea3aa706b978/transformed/jetified-canoa-sdk_2.3.0-runtime/dex/classes.dex"}],"tool":"D8"}
com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: 
Type org.opencv.BuildConfig is defined multiple times: /myPathProject/build/.transforms/bf16c92d6dcc96ca8411ea3aa706b978/transformed/jetified-canoa-sdk_2.3.0-runtime/dex/classes.dex, [myPathProject]/app/build/intermediates/external_libs_dex/prodRelease/mergeExtDexProdRelease/classes5.dex
    at com.android.builder.dexing.D8DexArchiveMerger.getExceptionToRethrow(D8DexArchiveMerger.java:151)
    at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:138)
    at com.android.build.gradle.internal.tasks.DexMergingWorkAction.merge(DexMergingTask.kt:859)
    at com.android.build.gradle.internal.tasks.DexMergingWorkAction.run(DexMergingTask.kt:805)
    at com.android.build.gradle.internal.profile.ProfileAwareWorkAction.execute(ProfileAwareWorkAction.kt:74)

解决步骤:

  • 排查依赖树,定位冲突来源
    执行gradle命令查看项目完整依赖树,找到两个依赖分别引入的OpenCV版本:

    ./gradlew app:dependencies
    

    搜索org.opencv,确认是哪两个依赖(新的aar和项目原有依赖)分别引入了不同版本的OpenCV。

  • 排除其中一个依赖的OpenCV
    在Module级别的build.gradle中,给冲突的依赖添加排除规则,保留项目需要的版本。比如如果新的aar依赖(canoa-sdk_2.3.0)引入的OpenCV和原有依赖冲突,就排除它的OpenCV:

    implementation(name: 'canoa-sdk_2.3.0', ext: 'aar') {
        exclude group: 'org.opencv'
    }
    

    反之,如果原有依赖的OpenCV版本不需要,就给原有依赖添加排除规则。

  • 强制统一OpenCV版本
    如果排除后出现兼容性问题,可在build.gradle中强制指定OpenCV版本,让所有依赖统一使用该版本:

    configurations.all {
        resolutionStrategy.force 'org.opencv:opencv-android:4.5.5' // 替换为你实际需要的版本号
    }
    
  • 清理并重新构建
    执行./gradlew clean清理构建缓存,再重新执行Release构建。


内容的提问来源于stack exchange,提问作者Lucas Bicca Karsburg

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:01:22