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

Expo-image-picker在Android应用重启后无法调用相机问题求助

Expo Image Picker在Android 15上重启应用后相机无法打开的问题

问题描述

  • 全新安装应用后,相机可正常打开使用
  • 重启应用后,相机无法打开,无崩溃现象,Logcat也没有相关异常日志
  • 仅在系统设置中清除应用数据后,相机才能再次正常使用

当前环境

  • Expo SDK 52
  • Android 15
  • 依赖库:expo-image-picker

已尝试的解决措施

  • 添加了所有必要权限:CAMERA、READ/WRITE_EXTERNAL_STORAGE
  • 调整expo配置中的插件顺序,将expo-image-picker置于首位
  • 测试了多个版本的expo-image-picker

可能的解决方案

1. 主动检查并重新请求权限

Android 15对权限持久化的处理逻辑有更新,重启后权限状态可能未正确保留。在应用启动时主动检查相机权限,若未授权则重新请求:

import * as ImagePicker from 'expo-image-picker';
import { useEffect } from 'react';

async function checkAndRequestCameraPermission() {
  const { status } = await ImagePicker.getCameraPermissionsAsync();
  if (status !== 'granted') {
    const { status: updatedStatus } = await ImagePicker.requestCameraPermissionsAsync();
    if (updatedStatus !== 'granted') {
      alert('需要授予相机权限才能使用拍照功能');
    }
  }
}

// 在应用根组件的useEffect中调用
useEffect(() => {
  checkAndRequestCameraPermission();
}, []);

2. 清理缓存并重新构建项目

缓存可能导致配置异常,执行以下命令清理并重建:

npx expo prebuild --clean
npx expo run:android

3. 更新权限声明适配Android 15

Android 13及以上版本已废弃WRITE_EXTERNAL_STORAGE,改用针对性的媒体权限。确保AndroidManifest.xml中的权限声明正确:

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />

注意:可在app.json的android.permissions中手动声明所需权限,确保覆盖正确配置。

4. 锁定兼容的expo-image-picker版本

确认使用的版本与Expo SDK 52完全兼容,SDK 52对应的expo-image-picker稳定版本为~15.0.7,在package.json中锁定该版本:

{
  "dependencies": {
    "expo-image-picker": "~15.0.7"
  }
}

之后执行npm install或yarn install更新依赖。

临时规避方法

如果上述方案暂时无法解决问题,可以在相机启动失败时,引导用户前往应用设置重新授予权限:

async function openCamera() {
  try {
    const pickerResult = await ImagePicker.launchCameraAsync({
      mediaTypes: ImagePicker.MediaTypeOptions.Images,
      allowsEditing: true,
      quality: 0.8,
    });
    if (!pickerResult.canceled) {
      // 处理选中的图片
    }
  } catch (err) {
    alert('相机无法打开,请前往应用设置检查并重新授予相机权限');
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 10:16:12