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

Google Play提示应用使用READ_EXTERNAL_STORAGE权限但本地无法检测求助

排查READ_EXTERNAL_STORAGE权限残留问题的代码检查点
  • 动态权限申请逻辑:翻遍所有调用requestPermissions()的代码,或是用了权限申请框架(比如EasyPermissions)的地方,看看有没有直接申请READ_EXTERNAL_STORAGE的情况——哪怕Manifest没写,代码里的动态申请也会被Google的检测机制盯上。
  • 外部存储操作代码:
    • 检查有没有调用Environment.getExternalStoragePublicDirectory()、Environment.getExternalStorageDirectory()这类直接访问公共外部存储的API,哪怕是针对Android 10以下版本的适配逻辑,也可能触发权限关联检测。
    • 排查第三方SDK/依赖库,比如图片加载、文件管理类的库,有些库会在内部偷偷动态申请权限,或者通过代码逻辑关联到该权限,不一定会在Manifest里显式声明。
  • 权限常量定义:看看项目里的工具类、常量类,有没有把READ_EXTERNAL_STORAGE定义成常量,哪怕没直接调用,混淆或编译插件可能会保留这些常量,导致被检测到。
  • 关联权限检查:确认有没有声明WRITE_EXTERNAL_STORAGE权限——在Android 10及以下版本,这个权限会自动附带READ_EXTERNAL_STORAGE的权限,Google的检测会把这种关联权限也算作应用使用了该权限。
  • 编译后Manifest文件:别只看源码里的Manifest,去app/build/intermediates/merged_manifests/对应变体目录下,查看最终合并后的Manifest文件,确认是否真的没有这个权限,本地工具可能有检测遗漏。
  • 混淆与R8配置:检查混淆规则是否保留了权限相关代码,或是R8优化时有没有意外引入权限关联——比如某些被混淆的代码实际调用了需要该权限的API。
  • 动态特性模块:如果用了动态功能模块(Dynamic Feature Modules),要逐个检查每个模块的Manifest,以及模块间的权限继承关系,说不定某个动态模块里偷偷加了这个权限。

内容的提问来源于stack exchange,提问作者Master Disaster

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 05:42:46