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

Expo SDK 46中expo-image-picker开启allowsMultipleSelection: true时抛出ERR_INVALID_MEDIA_TYPE错误求助

Expo Image Picker Multiple Selection Throws ERR_INVALID_MEDIA_TYPE on iOS Simulator

我之前也碰到过类似的问题——用expo-image-picker开启多选时就触发ERR_INVALID_MEDIA_TYPE错误,但单选完全正常。结合你的环境配置(Expo SDK 46、expo-image-picker ~13.3.1、iOS 15.5模拟器),可以从这几个方向尝试解决:

1. 限制媒体类型为图片而非全部

你当前配置的mediaTypes: MediaTypeOptions.All会同时允许选择图片和视频,但在iOS模拟器的多选场景下,这个设置可能触发媒体类型识别的bug。建议先将媒体类型限定为图片:

let result = await launchImageLibraryAsync({
  mediaTypes: MediaTypeOptions.Images, // 替换All为Images
  allowsMultipleSelection: true,
})

不少开发者反馈,在SDK 46版本的expo-image-picker中,多选时选择All会导致对部分媒体类型的处理逻辑出错,限定为图片后就能正常工作。

2. 验证真机行为,排除模拟器限制

iOS模拟器的媒体库有时会存在媒体类型标识不准确的问题,建议你在真实iOS设备上测试多选功能。如果真机上可以正常运行,说明问题大概率是模拟器的兼容性导致,你可以尝试升级模拟器的iOS版本(比如iOS 16+),或者优先在真机上开发调试。

3. 升级expo-image-picker到SDK 46兼容的最新版本

虽然你用的~13.3.1是SDK 46的默认版本,但Expo后续可能针对这个bug发布了小版本更新。可以尝试升级到SDK 46允许的最高版本:

运行命令:

expo install expo-image-picker@~13.4.0

(注:13.4.0是SDK 46兼容的image-picker最高版本,你可以通过expo info确认具体兼容版本)

4. 考虑升级Expo SDK到更高版本

SDK 46相对老旧,后续的SDK版本(比如47、48)对expo-image-picker的多选功能做了不少修复。如果项目允许,升级SDK能从根源上解决这类兼容性问题。不过升级前记得备份项目,并检查所有依赖的兼容性。

另外,你已经尝试的expo doctor、安装expo-module-scripts这些操作是正确的,但它们主要解决依赖配置问题,和这个多选的媒体类型错误关联不大。

你可以先尝试第一个方案,修改媒体类型为Images,这是最快速验证的方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 16:27:38