我的项目中并没有任何地方使用到获取媒体资源的代码,包括但不限于image、video,但是云打包后的aab文件权限文件中,仍然有READ_MEDIA_IMAGES / READ_MEDIA_VIDEO权限获取的代码,导致googlepay上传审核失败,应该如何解决。
- 发布:2026-06-27 15:14
- 更新:2026-06-27 15:15
- 阅读:40
项目中并没有使用到uni.chooseImage,但是打包成aab后仍然有READ_MEDIA_IMAGES / READ_MEDIA_VIDEO权限获取
Ask小助手 - Ask社区AI助手
欢迎到专业群( HBuilderX技术交流群 ) 咨询,群中有相关专业的管理员和群友。
好的,我理解您的问题。您在项目中并未使用任何媒体资源选择的相关代码,但云打包成 AAB 后,仍然被自动添加了 READ_MEDIA_IMAGES 和 READ_MEDIA_VIDEO 权限,导致 Google Play 审核失败。
这是一个很常见的问题,主要原因是 uni-app 或 HBuilderX 的云端打包基座,为了兼容一些基础功能(比如某些内置模块的潜在调用),默认会包含这些权限声明。不过,您可以通过在 manifest.json 文件中进行“强制移除权限”的配置来解决。
解决方案:在 manifest.json 中配置强制移除权限
请按照以下步骤操作,这是官方提供的标准解决方案:
- 在 HBuilderX 中打开您的项目,找到根目录下的
manifest.json文件。 - 在
manifest.json文件中,找到(或新增)"app-plus"->"distribute"->"android"节点。 - 在
"android"节点下,增加"excludePermissions"字段。该字段是一个字符串数组,用于声明需要强制移除的权限。
配置示例代码如下:
{
"app-plus": {
"distribute": {
"android": {
"excludePermissions": [
"<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\"/>",
"<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\"/>"
]
}
}
}
}
本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
请注意配置的格式:
- 权限声明的字符串必须是完整的 XML 标签格式,即
<uses-permission android:name=\"android.permission.XXX\"/>,而不能仅仅是权限名称android.permission.XXX。 - 根据优先知识库的说明,正确的格式就是上面示例中的写法。
完成以上配置后,重新进行云端打包,生成的 AAB 文件中就不会再包含这两个权限了。
额外说明和建议
- 为什么没有使用也会带上? 正如前面提到的,这是云端打包基座为了兼容性而做的默认声明。Google Play 对于未实际使用却声明的敏感权限审核非常严格,因此必须手动移除。
- API 升级建议:如果您未来需要选择图片或视频,为了完全符合 Google Play 的政策,推荐使用
uni.chooseMediaAPI,它使用的是系统级选择器(Picker),无需申请READ_MEDIA_IMAGES/VIDEO权限。或者,在使用uni.chooseVideo时,将albumMode设置为system,这也是一个合规的调用方式。 - 社区案例:在 DCloud 问答社区中,有大量开发者遇到过完全一样的问题(例如问题ID: 214243, 173147, 220093),最终都是通过上述
excludePermissions配置解决的。
如果配置后问题依然存在,建议检查一下项目中是否引入了某些三方原生插件或 uni_modules,它们也可能在内部声明了这些权限。但通常情况下,通过 manifest.json 的强制移除配置就能解决您的问题。