React Native安装@mediapipe/pose后出现RNSScreenNavigationContainer找不到错误
问题概述
安装@mediapipe/pose包后,项目抛出错误:
Invariant Violation: requireNativeComponent: "RNSScreenNavigationContainer" was not found in the UIManager.
错误堆栈指向导航组件链,已尝试yarn cache clean、删除node_modules重装,但问题未解决。当前TensorFlow.js相关依赖版本:
"@mediapipe/pose": "^0.4.1633558788", "@tensorflow-models/pose-detection": "2.0.0", "@tensorflow-models/posenet": "2.2.2", "@tensorflow/tfjs": "3.7.0", "@tensorflow/tfjs-react-native": "0.8.0"
解决方案
1. 重新安装并链接react-native-screens
该错误核心是react-native-screens的原生组件未正确注册或链接,执行以下步骤:
- 卸载并重装依赖:
yarn remove react-native-screens yarn add react-native-screens - iOS平台执行pod安装:
cd ios && pod install && cd .. - Android平台无需手动链接(RN 0.60+自动链接),若仍有问题,检查
android/settings.gradle是否包含:
以及include ':react-native-screens' project(':react-native-screens').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-screens/android')android/app/build.gradle的dependencies中是否有:implementation project(':react-native-screens')
2. 排查依赖冲突
@mediapipe/pose可能引入了与当前项目不兼容的react-native-screens版本,执行以下操作:
- 查看依赖树,确认版本冲突:
yarn why react-native-screens - 若发现冲突,在
package.json中添加强制版本解析(仅yarn支持):"resolutions": { "react-native-screens": "你的项目原使用版本" } - 重新安装依赖:
yarn install
3. 彻底清理缓存并重建项目
缓存残留可能导致组件未正确更新:
- 重置React Native缓存:
npx react-native start --reset-cache - iOS平台清理构建缓存:
在Xcode中选择Product > Clean Build Folder,或手动删除~/Library/Developer/Xcode/DerivedData下的项目对应文件夹 - Android平台清理gradle缓存:
cd android && ./gradlew clean && cd ..
4. 验证@mediapipe/pose版本兼容性
尝试调整@mediapipe/pose版本,避免与导航库冲突:
- 确认当前
@mediapipe/pose版本与react-navigation(或react-native-screens)的兼容性,可尝试降级至更稳定的版本(如0.4.x系列) - 若使用
@mediapipe/pose0.5.x版本出现问题,可锁定0.4.1633558788版本并重新安装
内容的提问来源于stack exchange,提问作者mth2171
相关产品推荐
相关产品推荐

