使用Expo自定义开发客户端集成react-native-track-player报错求助
Expo + react-native-track-player 双错误原因分析
TypeError: null is not an object (evaluating ‘TrackPlayer.RATING_HEART’)
- 版本兼容性问题:react-native-track-player当前版本与你使用的Expo(尤其是expo-dev-client)环境不匹配,部分常量(如
RATING_HEART)未被正确注入到Expo的原生运行环境中。 - 配置流程缺失:未按照Expo适配要求完成库的配置,比如跳过了
expo prebuild步骤,或者未安装该库对应的Expo适配插件(若存在),导致原生层未正确集成该库的常量定义。 - 初始化时机错误:在TrackPlayer完成初始化前就调用了
RATING_HEART这类静态常量,此时模块尚未完成加载,返回null引发报错。
Invariant Violation: “main” has not been registered
- Metro运行目录错误:使用expo-dev-client时,必须在项目根目录启动Metro服务器。若在子目录启动,Metro无法正确识别项目入口文件,导致入口组件未被注册。
- 模块加载异常中断流程:react-native-track-player的安装或配置错误引发了模块加载失败,打断了App的初始化流程,使得
AppRegistry.registerComponent代码未被执行。 - 原生文件未更新:执行
expo prebuild后未重新生成原生客户端文件,或者原生文件被篡改,导致入口注册的核心逻辑失效。
内容的提问来源于stack exchange,提问作者lordkyle
相关产品推荐
相关产品推荐

