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

React Native项目Android端react-sound音频资源找不到问题求助

React Native Android 音频播放问题解决方案

主问题:Android端音频正常播放的必要操作

  1. 修正文件路径写法
    Android端访问assets内的文件时,路径不需要./assets/前缀,直接使用相对于assets文件夹的路径即可。比如音频文件放在assets/audio/下,代码里的路径应改为:

    path = "audio/a_" + soundfile.toLowerCase()
    

    同时base_path设为空字符串''即可,Sound.MAIN_BUNDLE仅iOS端有效,Android端无此常量。

  2. 验证gradle配置
    打开android/app/build.gradle,确认sourceSets中包含assets目录的引用:

    android {
        sourceSets {
            main {
                assets.srcDirs += file("../assets")
            }
        }
    }
    

    配置完成后执行npx react-native run-android重新打包项目。

  3. 确认asset文件同步状态
    执行npx react-native-asset后,检查android/app/src/main/assets目录下是否存在audio文件夹及对应音频文件。若未同步成功,可手动将assets/audio目录复制到该路径后重新打包。

  4. 检查依赖版本兼容性
    确保react-native-sound版本与当前React Native版本兼容,若版本过旧,尝试更新到最新稳定版:

    npm install react-native-sound@latest
    
  5. 查看原生错误日志
    运行adb logcat *:E查看Android原生端的错误日志,可获取更详细的资源找不到原因,比如路径拼写错误、文件未正确打包等。

次要问题:无需修改文件名的解决方案

Android的asset系统允许数字开头和混合大小写的文件名,无需修改文件名,只需注意两点:

  • 代码中引用的路径必须与实际文件名严格大小写一致(Android asset区分大小写)
  • 确保react-native-config.js的assets配置正确指向音频文件夹:
    module.exports = {
      assets: ["./assets/audio/"],
    };
    
    执行npx react-native-asset后,文件名会原封不动同步到Android的assets目录,代码中直接使用原文件名即可:
    // Android端路径写法
    path = "audio/" + soundfile; // soundfile保留原文件名(大小写、数字开头均支持)
    base_path = '';
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 12:57:04