删除Permission Handler插件后Flutter App仍请求权限求助
我完全能理解你现在的困扰——明明已经删掉了Permission Handler插件,注释了AndroidManifest.xml里的权限声明,还做了flutter clean、卸载App并清除缓存的操作,但App还是会弹出存储和相机的权限请求。结合你的情况,我整理了几个可能的原因和对应的解决办法:
1. 检查是否存在依赖传递引入的Permission Handler
有时候你没有直接依赖Permission Handler,但项目里的其他第三方插件可能间接引入了它。你可以先检查项目的依赖树确认这一点:
flutter pub deps
如果发现有其他依赖依赖了Permission Handler,你可以在pubspec.yaml中添加dependency_overrides来强制移除它:
dependency_overrides: permission_handler: none
之后执行flutter pub get更新依赖。
2. 彻底清理Android端构建缓存
虽然执行了flutter clean,但Android本地的构建缓存可能还有残留。可以手动清理这些缓存:
- 打开项目的
android目录,删除.gradle文件夹 - 删除
android/app/build文件夹 - 回到项目根目录,重新执行
flutter clean→flutter pub get→ 重新构建App
3. 彻底清除设备上的App残留数据
部分Android设备在卸载App后,仍会保留一些缓存数据或临时安装包。你可以:
- 进入设备的设置-应用-找到你的App-存储-清除数据+清除缓存
- 彻底卸载App,重启设备后再重新构建安装
4. 排查代码中是否有残留的权限请求逻辑
除了你提到的那段权限请求代码,可能还有其他地方调用了权限请求——比如某些第三方插件内部的权限逻辑,或者你没注意到的代码片段。可以全局搜索项目里的Permission、request()相关关键词,确认是否还有遗漏的权限请求代码。
5. 尝试升级Flutter版本
你当前使用的Flutter 1.17.1是2020年的旧版本,可能存在缓存或依赖处理的遗留bug。如果上面的方法都无效,可以尝试升级到较新的稳定版本:
flutter upgrade
升级完成后再重新执行flutter clean和构建操作。
你可以按照上面的步骤逐一排查,应该能解决权限请求残留的问题。
内容的提问来源于stack exchange,提问作者AchalYash

