react-native-vision-camera安卓端构建报错问题排查咨询
问题根因
三个报错均为依赖版本不兼容导致:
- 你当前使用的
vision-camera-code-scanner@0.2.0对react-native-vision-camera的版本有严格适配要求,浮动版本号^2.3.0可能拉取到路径变更、类结构调整的不匹配版本,导致找不到FrameProcessorPlugin类 - 若之前执行过原生构建,旧的编译缓存会残留错误的类引用,触发符号找不到、方法重写不匹配的报错
react-native-vision-camera2.13.0及以上版本最低要求React Native 0.66.0,和你项目使用的RN 0.65.0本身就存在版本冲突
修复步骤
- 锁定兼容依赖版本,去掉版本浮动符,执行对应包管理工具的安装命令:
# npm 用户执行 npm install react-native-vision-camera@2.12.0 vision-camera-code-scanner@0.2.0 --save-exact # yarn 用户执行 yarn add react-native-vision-camera@2.12.0 vision-camera-code-scanner@0.2.0 --exact
- 清理安卓原生构建缓存,进入项目根目录下的
android文件夹,执行清理命令:
./gradlew clean
- 回到项目根目录,重新执行安卓构建命令即可,不要复用之前的metro缓存,启动时可以加
--reset-cache参数:
npx react-native run-android --reset-cache
- 如果仍存在
@Override报错,找到安卓项目下的VisionCameraCodeScannerPlugin.java文件,核对回调方法签名:2.12.0版本下FrameProcessorPlugin的回调方法参数为Frame frame, Map<String, Object> args,将签名不匹配的重写方法参数调整一致即可。
避坑提示
- 不要升级
react-native-vision-camera到2.13.0及以上版本,这类版本和RN 0.65.0存在底层API不兼容问题,会触发更多原生构建错误 - 如果项目不需要条码/二维码扫描能力,直接执行
npm uninstall vision-camera-code-scanner移除该依赖,三个报错会直接消失
内容的提问来源于stack exchange,提问作者Taha Ateş
相关产品推荐
相关产品推荐

