Android Studio导入OpenCV后构建失败,出现Manifest合并等报错如何解决?
报错原因
processDebugMainManifest错误:本质是导入的OpenCV模块与主App模块的Android构建配置(minSdk、targetSdk、namespace等)不匹配,导致清单文件合并失败,无法生成构建所需的navigation.json中间文件;也可能是之前的构建缓存损坏,残留的无效配置干扰了新的构建流程。compressDebugAssets错误:多由构建缓存中的assets中间文件损坏、OpenCV内置资源与主项目资源路径冲突,或是当前项目路径存在中文/特殊字符导致系统无法正常读取合并后的assets文件触发。
解决方案
先完成前置缓存清理:
- 关闭Android Studio,删除项目根目录下的
.gradle文件夹、app模块下的build文件夹、已导入的OpenCV模块下的build文件夹 - 重启Android Studio后再按以下两种方案之一配置OpenCV
方案一:远程依赖导入(优先选择,无需手动导入Module)
无需处理模块导入的复杂配置,直接通过Gradle引入即可,可完全避免Import Module的适配问题:
- 打开app模块的
build.gradle(Module级,非项目根目录的build.gradle) - 在
dependencies代码块中添加如下配置:
// 基础OpenCV功能引入 implementation 'org.opencv:opencv-android:4.8.0' // 如需使用OpenCV原生扩展能力,可额外添加以下依赖 implementation 'org.opencv:opencv-android-sdk:4.8.0'
- 点击Gradle同步按钮,同步完成后直接构建项目即可正常使用OpenCV。
方案二:本地Module导入(适用于必须使用自定义编译的OpenCV SDK的场景)
如果必须使用本地下载的OpenCV SDK包,按以下步骤操作可避免配置冲突:
- 下载OpenCV Android SDK压缩包,解压到本地无中文、无特殊字符、无空格的路径下
- 选择File > New > Import Module,选中解压后路径中的
sdk文件夹,将模块名设置为opencv后完成导入 - 打开opencv模块的
build.gradle,将其中的minSdk、compileSdk、targetSdk、namespace四个配置值修改为和主app模块build.gradle中的对应值完全一致 - 打开app模块的
build.gradle,在dependencies代码块中添加:
implementation project(':opencv')
- 同步Gradle后,依次点击Build > Clean Project、Build > Rebuild Project即可完成构建。
内容的提问来源于stack exchange,提问作者Jeff Dziad
相关产品推荐
相关产品推荐

