react-native-fast-opencv Android构建失败:CMake依赖目标未找到
问题描述
安装react-native-fast-opencv 0.3.1版本后,iOS端通过Xcode构建正常,但执行yarn android或npx react-native run-android时Android构建失败,核心错误如下:
Task :react-native-fast-opencv:configureCMakeDebug[arm64-v8a] FAILED
CMake提示目标"react-native-fast-opencv"链接的ReactAndroid::folly_runtime、ReactAndroid::glog、ReactAndroid::reactnativejni未找到,可能缺少find_package()调用或别名目标。
重现步骤
- 按照
react-native-fast-opencv官方配置说明完成所有设置 - 执行
npx react-native run-android或yarn android触发Android构建
环境信息
- React Native版本:0.76.1
- Node版本:v18.18.0
- Yarn版本:3.6.4
- Xcode版本:16.0
- macOS版本:15.0.0
解决方案
1. 调整react-native-fast-opencv的CMake配置
找到项目中node_modules/react-native-fast-opencv/android/CMakeLists.txt文件,修改依赖引入逻辑,确保CMake能正确识别React Native 0.76的目标:
# 替换原有依赖链接相关代码 find_package(ReactNative REQUIRED CONFIG) target_link_libraries(react-native-fast-opencv PRIVATE ReactNative::ReactAndroid ReactNative::folly_runtime ReactNative::glog ReactNative::reactnativejni opencv_java4)
2. 补充Gradle配置(可选)
如果上述修改后仍报错,在node_modules/react-native-fast-opencv/android/build.gradle的externalNativeBuild块中添加CMake参数,指定ReactAndroid的CMake配置路径:
externalNativeBuild { cmake { path "CMakeLists.txt" // 添加以下参数 arguments "-DReactAndroid_DIR=${rootProject.projectDir}/../node_modules/react-native/ReactAndroid/cmake" } }
3. 清理构建缓存
修改配置后,清理缓存避免旧配置干扰:
# 清理Gradle缓存 cd android && ./gradlew clean # 删除本地Gradle缓存文件夹 rm -rf .gradle # 重新安装依赖 cd .. && rm -rf node_modules && yarn install
4. 尝试升级依赖(若可行)
检查react-native-fast-opencv是否有适配React Native 0.76的新版本,若有则升级至对应版本,避免手动修改依赖配置。
内容的提问来源于stack exchange,提问作者Abdullah Jaspal

