You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中react-native-video报Constants未定义错误求助

解决React Native中react-native-video组件在npm start启动时崩溃的问题

问题现象

使用npm start启动React Native项目后,加载包含react-native-video组件的页面时,应用崩溃并抛出错误:

TypeError: Cannot read property 'Constants' of undefined

错误定位在Video组件,但通过npx react-native run-ios直接运行iOS应用时,视频可正常播放无报错。

错误原因

该错误本质是**react-native-video的原生模块未正确链接**,或Metro缓存导致JS层与原生层的模块映射不一致:

  • npx react-native run-ios会重新构建iOS原生项目,自动处理模块链接;而npm start仅启动Metro服务,若缓存了旧的模块信息,会导致JS层无法找到原生模块的Constants属性。

解决步骤

1. 清除Metro缓存并重启服务

这是最常见的修复方式,强制Metro重新生成模块映射:

  • 停止当前运行的Metro服务(按Ctrl+C)
  • 执行命令清除缓存并重启:
    npx react-native start --reset-cache
    
  • 重新在模拟器/设备上加载应用

2. 重新安装iOS依赖并验证链接

针对iOS端,确保原生依赖正确安装:

  • 进入iOS目录并重新安装Pods:
    cd ios && npx pod-install && cd ..
    
  • 若使用React Native 0.60以下版本,手动执行模块链接:
    npx react-native link react-native-video
    

3. 检查版本兼容性

确保react-native-video版本与你的React Native版本匹配:

  • 查看项目package.json中的react-native-video版本,参考官方文档确认兼容性(例如RN 0.70+建议使用react-native-video@6.x及以上版本)
  • 若版本不兼容,升级或降级:
    npm install react-native-video@<兼容版本号>
    

4. 手动验证iOS原生模块链接(可选)

若上述步骤无效,手动检查Xcode项目配置:

  • 打开iOS项目的.xcworkspace文件
  • 确认Libraries目录下存在RCTVideo.xcodeproj
  • 进入项目Build Phases → Link Binary With Libraries,检查是否包含libRCTVideo.a

额外提示

你的RecipeDetail组件中使用了Linking但未导入,需补充导入语句避免后续报错:

import { View, Text, Image, StyleSheet, ScrollView, Linking } from "react-native";

内容的提问来源于stack exchange,提问作者rawan arafat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 05:58:37