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

应用未声明READ_MEDIA权限却被Google误判,该如何排查解决?

问题解决思路

核心原因

Android 13(API 33+)将原有的READ_EXTERNAL_STORAGE拆分为针对不同媒体类型的权限:READ_MEDIA_IMAGES和READ_MEDIA_VIDEO。你使用的expo-image-picker@~15.0.7会自动为Android 13+版本添加这两个权限到最终构建的AndroidManifest.xml中,但你没有在配置里显式声明,导致Google检测到"未声明权限"。

处理步骤

  • 显式声明权限:在你的app.json或app.config.js的android.permissions数组中添加这两个权限,确保构建后的清单文件包含声明:
    "android": {
      "permissions": [
        // 保留你原有的其他权限
        "android.permission.READ_MEDIA_IMAGES",
        "android.permission.READ_MEDIA_VIDEO"
      ]
    }
    
  • 确认合并后的清单:如果是Bare workflow项目,运行npx expo prebuild生成本地Android项目,然后查看android/app/src/main/AndroidManifest.xml,确认权限已被正确添加。
  • 按需移除不必要的权限:如果你的应用不需要读取视频的权限,可以在调用launchImageLibraryAsync时指定mediaTypes: MediaTypeOptions.Images,同时在AndroidManifest.xml中通过tools:node="remove"移除READ_MEDIA_VIDEO:
    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" tools:node="remove"/>
    
  • 更新隐私政策:确保你的应用隐私政策中明确说明使用这些媒体权限的用途,符合Google Play的审核要求。

排查方向

  • 核对expo-image-picker版本适配逻辑:该版本针对Android 13的权限规则会自动引入媒体权限,无需手动在原生清单添加,但必须在expo配置中显式声明。
  • 查看构建日志:在expo构建过程中,检查是否有关于权限自动合并的日志信息,确认权限的来源路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 15:55:13