React Native Vision Camera与Reanimated安卓构建错误求助
React Native安卓构建错误:链接器无法找到RNWorklet::JsiWorkletContext等符号
问题描述
在安卓模拟器构建React Native应用时,最终阶段触发链接错误,提示无法找到RNWorklet::JsiWorkletContext等相关符号,直接导致:react-native-vision-camera:buildCMakeDebug[arm64-v8a]任务失败。
涉及的包版本:
- react-native-vision-camera: ^3.9.1
- react-native-reanimated: ^3.7.1
- react-native-worklets: ^0.0.1-alpha
- react-native-worklets-core: ^0.3.0
- react-native: 0.73.4
已尝试无效操作:删除gradle.build文件夹、重启电脑、创建新虚拟设备、更换JDK版本。
解决方案
1. 清理冲突的Worklets依赖
react-native-worklets(0.0.1-alpha)是旧测试版本,与官方维护的react-native-worklets-core(0.3.0)存在依赖冲突,需移除旧包:
- 卸载旧依赖:
npm uninstall react-native-worklets # 或使用 yarn:yarn remove react-native-worklets - 重置依赖环境:
rm -rf node_modules rm package-lock.json # yarn用户替换为 rm yarn.lock npm install # yarn用户替换为 yarn install
2. 对齐Vision Camera与Worklets Core的版本兼容性
react-native-vision-camera v3.9.1对worklets-core版本有特定要求,建议锁定兼容版本:
- 安装指定版本的worklets-core:
npm install react-native-worklets-core@0.2.1 --save # 或 yarn add react-native-worklets-core@0.2.1
3. 修正CMake编译配置
链接器错误多因CMake未正确引入worklets库,需手动配置:
- 打开
android/app/build.gradle,在defaultConfig的externalNativeBuild中添加编译参数:android { ... defaultConfig { ... externalNativeBuild { cmake { arguments "-DREACT_NATIVE_WORKLETS_CORE_LINKED=ON" } } } } - 清理并重新构建:
cd android ./gradlew clean ./gradlew assembleDebug
4. 验证Reanimated集成配置
react-native-reanimated v3.7.1需与worklets-core正确联动,检查Babel配置:
- 打开
babel.config.js,确保包含Reanimated插件:module.exports = { presets: ['module:metro-react-native-babel-preset'], plugins: ['react-native-reanimated/plugin'], }; - 重置Metro缓存:
npx metro-cache clean
5. 检查安卓ABI过滤设置
错误针对arm64-v8a架构,确认ABI配置覆盖目标架构:
- 打开
android/app/build.gradle,修改ndk的abiFilters:android { ... defaultConfig { ... ndk { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } } }
内容的提问来源于stack exchange,提问作者Computer Bloke
相关产品推荐
相关产品推荐

