升级react-native-vision-camera后出现frame-processor/unavailable错误求助
问题描述
场景1:React Native 0.71.6 + Vision Camera 2.16.2 报错 "frame-processor/unavailable"
原使用vision-camera 2.15.4因与Xcode15不兼容,升级至2.16.2后,Android和iOS端均出现frame-processor/unavailable错误。当前依赖配置:
"react-native": "0.71.6", "react-native-reanimated": "^2.14.4", "react-native-vision-camera": "^2.16.2", "vision-camera-code-scanner": "^0.2.0", "react-native-hole-view": "^2.2.0", "@react-native-firebase/app": "^17.4.0", "@react-native-firebase/messaging": "^17.4.0"
对应babel.config.js:
module.exports = { presets: ['module:metro-react-native-babel-preset'], plugins: [ [ 'react-native-reanimated/plugin', { globals: ['__scanCodes'] } ], [ "module:react-native-dotenv", { "envName": "APP_ENV", "moduleName": "@env", "path": ".env", "safe": false, "allowUndefined": true, "verbose": false } ] ] };
场景2:React Native 0.73.1 + Vision Camera V3 + Reanimated V3 安卓构建失败
尝试升级至React Native 0.73.1 + Vision Camera V3 + Reanimated V3后,Android端出现构建失败问题。新增依赖:
"react-native-worklets-core": "^0.2.4"
对应babel.config.js:
module.exports = { presets: ['module:@react-native/babel-preset'], plugins: [ "react-native-worklets-core/plugin", 'react-native-reanimated/plugin', ], };
解决方案
针对场景1:修复 "frame-processor/unavailable" 错误
升级Reanimated版本
Vision Camera 2.16.x要求Reanimated版本至少为2.15.0,当前2.14.4版本过低,升级至^2.15.0或更高兼容版本。清理Babel缓存
执行命令清理Babel缓存,确保配置生效:rm -rf node_modules/.cache/babel-loader全量清理并重建项目
- iOS端:
cd ios && pod deintegrate && pod install && cd .. rm -rf ~/Library/Developer/Xcode/DerivedData - Android端:
cd android && ./gradlew clean && cd .. - 重启Metro服务:
npx react-native start --reset-cache
- iOS端:
启用Frame Processor编译配置
在android/app/build.gradle中添加Frame Processor编译参数:android { defaultConfig { // ... externalNativeBuild { cmake { arguments "-DENABLE_FRAME_PROCESSOR=1" } } } }
针对场景2:修复React Native 0.73.1 + Vision Camera V3 安卓构建失败
升级react-native-worklets-core版本
Vision Camera V3要求react-native-worklets-core版本至少为0.3.0,当前0.2.4版本不兼容,升级至^0.3.0。调整Gradle配置
RN0.73需要Gradle 8.0+,检查并修改以下配置:android/build.gradle:dependencies { classpath("com.android.tools.build:gradle:8.0.0") // ... }android/gradle/wrapper/gradle-wrapper.properties:distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
清理并重新构建Android项目
cd android && ./gradlew clean && ./gradlew assembleDebug && cd ..排查依赖冲突
执行命令查看依赖树,排除与react-native-worklets-core或vision-camera冲突的子依赖:npx react-native dependencies
内容的提问来源于stack exchange,提问作者Phyo Thiha Aung

