导入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
相关产品推荐
相关产品推荐

