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

基于Expo SDK53的Android应用突发MEDIA_LIBRARY权限缺失问题求助

问题

我开发的一款基于Expo SDK 53的Android应用,近期在向相册添加照片时突然出现「Missing MEDIA_LIBRARY permissions」错误。该应用允许用户通过expo-camera拍摄照片,照片既保存在应用内供后续使用,也同步保存到用户相册供外部调用。应用最后一次更新发布于3月初,此前数月已有大量用户正常使用该拍照功能。

保存照片到相册的核心逻辑代码如下:

// note that at this point the user has already given the permissions by calling the function usePermissions() from expo-media-library

// File as defined by expo-file-system/next (for sdk53)
let photo = new File(imageUri)

const asset = await MediaLibrary.createAssetAsync(photo.uri)

// albumName is a string created on some other variables
const album = await MediaLibrary.getAlbumAsync(albumName) 

调用getAlbumAsync时触发了MEDIA_LIBRARY权限错误。此外,为通过Google Play Store政策审核,我在app.json中屏蔽了以下权限:

"blockedPermissions": [
  "android.permission.MANAGE_EXTERNAL_STORAGE",
  "android.permission.READ_EXTERNAL_STORAGE",
  "android.permission.WRITE_EXTERNAL_STORAGE",
  "android.permission.READ_MEDIA_IMAGES",
  "android.permission.READ_MEDIA_VIDEO"
],

请问为何未进行代码修改或应用更新的情况下,突然出现此问题?是否与Google Play政策静默更新有关?


分析与解决方案

核心原因

  1. 权限依赖不匹配:getAlbumAsync属于读取相册列表的操作,Android 13+明确要求READ_MEDIA_IMAGES权限才能执行该操作。你在app.json中主动屏蔽了这个权限,之前未触发错误可能是因为:
    • 早期用户设备多为Android 12及以下,当时WRITE_EXTERNAL_STORAGE权限可覆盖读写操作;
    • Google Play的权限合规检测近期收紧,对已发布应用的权限拦截逻辑强制执行变严;
    • 部分用户近期升级到Android 13+,触发了新的权限校验规则。
  2. 权限请求不完整:你提到已调用usePermissions(),但该方法可能仅请求了媒体库的写入权限,未覆盖读取权限(获取相册列表需要读取权限),加上权限被屏蔽,直接触发权限缺失错误。

解决步骤

  • 移除不必要的权限屏蔽:从blockedPermissions中删除android.permission.READ_MEDIA_IMAGES,该权限是获取相册列表的必要权限,符合Google Play的合规要求(仅用于读取相册列表,不属于过度权限)。
  • 补充权限请求:在调用getAlbumAsync前,明确请求读取权限:
    const { status } = await MediaLibrary.requestPermissionsAsync({
      mediaLibrary: ['read', 'write']
    });
    if (status !== 'granted') {
      // 处理权限拒绝逻辑
      return;
    }
    
  • 替代方案(若不想请求读取权限):可以跳过getAlbumAsync,直接尝试创建目标相册(若相册已存在则不会重复创建),再添加资产:
    const album = await MediaLibrary.createAlbumAsync(albumName, asset, false);
    // 第三个参数为false时,若相册已存在则返回现有相册,不会报错
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.02 06:52:32