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

Expo构建React Native生产包失败:无法解析本地视频文件

解决Expo生产构建无法解析本地视频文件的问题

以下是几个可行的修复方案,按优先级尝试:

  • 用require引入视频资源
    开发时Expo Go能自动识别相对路径,但生产构建需要让metro打包工具明确追踪资源。把字符串路径替换为require引入:

    // 原代码可能是这样的:
    // <Video source={{ uri: '../assets/avatar.mp4' }} ... />
    
    // 修改为:
    const videoAsset = require('../assets/avatar.mp4');
    <Video source={videoAsset} ... />
    

    这样metro会将视频文件复制到构建产物的正确位置,避免路径解析失败。

  • 在app.json中声明资源
    把视频文件添加到expo.assets数组,让Expo预打包该资源:

    {
      "expo": {
        "assets": [
          "./assets/avatar.mp4"
        ]
      }
    }
    

    注意路径是相对于项目根目录的,不是组件文件的相对路径。

  • 检查metro配置(若自定义过)
    如果修改过metro.config.js,确保没有排除.mp4扩展名。默认配置已包含,但自定义时需确认:

    const { getDefaultConfig } = require('expo/metro-config');
    const config = getDefaultConfig(__dirname);
    
    // 如果assetExts里没有mp4,添加进去
    if (!config.resolver.assetExts.includes('mp4')) {
      config.resolver.assetExts.push('mp4');
    }
    
    module.exports = config;
    
  • 清理缓存后重新构建
    缓存可能导致资源识别异常,执行以下命令清理缓存后再构建:

    expo r -c
    expo build:android  # 对应安卓构建,iOS则用expo build:ios
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 01:43:13