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

Expo导入react-native-track-player报错:Cannot read property 'RATING-HEART' of null

问题原因及修复方案

可能的原因

  1. 版本兼容性冲突:react-native-track-player v3及以上版本对Expo(尤其是Managed Workflow)支持有限,Managed Workflow不允许修改原生配置,而该库高版本需要原生层面的调整,导致导入时触发错误。
  2. 原生依赖未正确部署:即使是Bare Workflow,若安装过程中跳过了iOS的pod install或Android的Gradle同步,会导致原生模块缺失,引发导入失败。
  3. 缓存残留干扰:Expo开发服务器的旧缓存未清除,新安装的模块未被正确识别加载。

修复步骤

针对Managed Workflow(未 eject 的Expo项目)

Managed Workflow无法直接使用react-native-track-player,建议替换为Expo官方支持的音频库:

  • 安装expo-av:
    npx expo install expo-av
    
  • 使用expo-av的Audio API实现音频播放,完全适配Expo生态,无需原生配置。

针对Bare Workflow(已 eject 的Expo项目)

  1. 更换兼容版本

    npm uninstall react-native-track-player
    npm install react-native-track-player@2.3.0
    

    (v2.3.0是经验证的、对Expo Bare Workflow兼容性较好的版本)

  2. 补全原生依赖配置

    • Android:
      确保android/build.gradle的repositories区块包含:
      repositories {
          google()
          mavenCentral()
          jcenter()
      }
      
      打开Android Studio执行File > Sync Project with Gradle Files同步配置。
    • iOS:
      进入项目ios目录执行:
      pod install
      
  3. 清除缓存重启服务

    expo start --clear
    
  4. 正确初始化播放器
    导入后必须先完成初始化再使用:

    import TrackPlayer from 'react-native-track-player';
    
    const initPlayer = async () => {
      await TrackPlayer.setupPlayer();
      // 后续添加曲目等操作
    };
    

内容的提问来源于stack exchange,提问作者Nguyễn Nguyễn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 01:20:13