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

Android端expo-image-picker显示PDF且选中后崩溃问题求助

解决expo-image-picker在Android端显示PDF并崩溃的问题

问题根源

Android系统文件选择器对ImagePicker.MediaTypeOptions.All的解析会包含PDF这类文档格式,而expo-image-picker未对PDF做兼容处理,导致选中后应用崩溃。

解决方案

直接指定允许的媒体类型,不用模糊的All,明确限定为图片和视频:

修改后的代码

import * as ImagePicker from 'expo-image-picker'

export default function App() {

  const openGallery=async()=>{
    console.log("openGallery")
    try {
      const result=await ImagePicker.launchImageLibraryAsync({
        // 替换All为具体的媒体类型数组,精准过滤非图片/视频文件
        mediaTypes: ['image/*', 'video/*'],
        exif:false,
        quality: 1,
        base64:false
      })
      console.log(result);
    } catch (error) {
      console.log(error);
    }
 
  }
  return (
    <View style={styles.container}>
    <TouchableOpacity onPress={()=>openGallery()}>
      <Text>Select image</Text>
    </TouchableOpacity>
      <StatusBar style="auto" />
    </View>
  );
}

额外保险措施(可选)

如果担心仍有非合规文件被选中,可在获取结果后校验文件的MIME类型,提前拦截:

if (!result.canceled) {
  const asset = result.assets[0];
  // 检查文件类型是否为图片或视频
  if (!asset.mimeType?.startsWith('image/') && !asset.mimeType?.startsWith('video/')) {
    console.log('请选择图片或视频文件');
    return;
  }
  // 后续正常处理逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 07:37:39