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

Flutter应用未使用权限却遭Google Play要求声明,如何移除?

解决Flutter应用上传Google Play时未使用权限的问题

步骤1:定位权限来源

Google Play检测到的未使用权限,基本都是依赖库在自身的AndroidManifest.xml中声明的。要找出具体来源,你可以通过Gradle生成合并后的Manifest文件查看:

  • 进入Flutter项目的android目录,执行命令:
    ./gradlew app:mergeReleaseAndroidManifest
    
  • 生成的合并Manifest文件路径为:app/build/intermediates/merged_manifests/release/AndroidManifest.xml
  • 打开这个文件,每个权限条目上方会有注释标注它来自哪个依赖库(比如<!-- com.example.library:1.0.0 -->),这样就能精准定位到权限的来源。

步骤2:移除未使用的权限

找到来源后,直接在你项目自己的android/app/src/main/AndroidManifest.xml中强制移除这些权限,操作如下:

  1. 先在Manifest根标签中添加tools命名空间(如果还没有的话):

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="你的应用包名">
    
  2. 对每个未使用的权限,添加tools:node="remove"属性来忽略依赖库的声明,比如移除READ_PHONE_STATE权限:

    <uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
    

步骤3:优化依赖(可选)

如果某个依赖库引入了大量不必要的权限,你可以考虑:

  • 替换为功能类似但权限更精简的替代库;
  • 升级该依赖到最新版本,有些新版本会移除冗余权限;
  • 如果该依赖的功能你只用了一小部分,评估是否可以自行实现这部分功能以移除依赖。

比如你项目中的flutter_device_type库可能会引入READ_PHONE_STATE权限来获取设备信息,如果你的应用不需要精准设备类型识别,可以考虑用Flutter原生API替代,或者直接移除该库。

内容的提问来源于stack exchange,提问作者An Tran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 23:50:34