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

导入expo-media-library模块触发TypeError错误,求解决方法

解决expo-media-library导入时出现的TypeError: undefined is not an object (evaluating '_ExponentMediaLibrary.default.MediaType')错误
  • 匹配Expo SDK与expo-media-library版本
    不同Expo SDK版本对应特定的expo-media-library版本,版本不兼容会直接导致模块加载失败。直接运行expo install expo-media-library,让Expo自动安装适配当前SDK的版本,不要手动指定版本号安装。

  • 确认项目环境
    expo-media-library是Expo专属模块,裸React Native项目无法直接使用。如果是裸项目,要么迁移到Expo管理工作流,要么按照Expo模块的裸项目配置流程添加expo-modules-core并配置原生部分,或者改用react-native-image-picker等原生替代库。

  • 清除缓存重启项目
    缓存问题可能导致模块未正确链接,执行以下操作:

    • 运行expo r -c清除Expo缓存并重启项目
    • 或者删除node_modules、package-lock.json/yarn.lock,重新执行npm install/yarn install后重启
  • 检查导入语句拼写
    确保导入语句是import * as MediaLibrary from 'expo-media-library';,避免模块名拼写错误(比如少写字母、写错单词)。

  • 配置必要权限
    在app.json或app.config.js中添加相册权限配置,权限缺失可能导致模块初始化失败:

    "ios": {
      "infoPlist": {
        "NSPhotoLibraryAddUsageDescription": "需要访问相册以保存图片"
      }
    },
    "android": {
      "permissions": ["WRITE_EXTERNAL_STORAGE"]
    }
    
  • 排查tinycolor2依赖问题
    错误触发在tinycolor2文件中,可能是依赖版本不兼容或缓存问题:

    • 运行npm update tinycolor2更新到最新版本
    • 手动删除node_modules/tinycolor2目录后重新安装依赖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 18:30:54