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

Flutter Android应用未声明uses-permission权限来源查询方法

Flutter Android 额外权限来源定位方法

方法1:查看Android Studio合并清单面板

  • 用Android Studio打开项目根目录下的android文件夹
  • 打开主模块的src/main/AndroidManifest.xml文件
  • 点击编辑区底部的Merged Manifest标签页
  • 左侧会展示最终合并后的所有权限,点击任意权限,右侧就会显示该权限的来源模块/依赖包信息,可精确到具体的依赖版本

方法2:导出Manifest合并报告

如果不用Android Studio,也可以通过Gradle命令生成完整的合并日志:

  1. 进入项目的android目录
  2. 执行以下命令生成Release模式的合并报告:
# Mac/Linux
./gradlew app:mergeReleaseManifest
# Windows
gradlew app:mergeReleaseManifest
  1. 报告生成后可以在以下路径找到:
    app/build/outputs/logs/manifest-merger-release-report.txt
    打开文件后搜索对应的权限名,就能看到完整的引入链路,明确是哪个第三方依赖引入的额外权限。

多余权限移除方案

如果确认某权限是不需要的,可以在主项目的AndroidManifest.xml中主动声明移除:

  1. 首先在manifest根标签添加tools命名空间:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="myPackage">
  1. 针对要移除的权限添加tools:node="remove"属性即可,例如移除蓝牙权限:
<uses-permission android:name="android.permission.BLUETOOTH" tools:node="remove" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" tools:node="remove" />

注:额外权限出现的原因是Android原生的Manifest合并机制,你依赖的Flutter插件原生层的AndroidManifest中声明的权限会自动合并到主项目的最终清单中,无需你手动声明。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:24:05