Flutter应用运行报错:PackageManager相关API已废弃
解决Flutter应用因permission_handler旧版本API废弃导致的启动失败问题
问题根源
你使用的permission_handler:8.3.0版本依赖内部调用了Android已废弃的PackageManager相关API,同时你的项目编译配置将警告视为错误(-Werror),因此编译时触发报错导致应用无法启动。
解决方案
方案1:升级permission_handler到最新稳定版
这是最彻底的解决方式,新版本已适配Android新API:
- 打开项目根目录的
pubspec.yaml文件,找到permission_handler依赖项,替换为当前最新稳定版本:dependencies: permission_handler: ^10.2.0 # 替换为pub上的最新稳定版本 - 执行命令更新依赖:
flutter pub upgrade permission_handler - 清理缓存并重新编译:
flutter clean flutter run
方案2:修改Android编译配置,关闭警告转错误
如果暂时无法升级依赖,可通过修改编译规则忽略该警告:
- 打开
android/app/build.gradle,在android代码块中添加或修改以下配置:android { // 保留原有配置,新增以下内容 lintOptions { abortOnError false // 关闭lint错误终止编译 } compileOptions { warningsAsErrors false // 关闭将警告视为错误 } } - 或者针对特定依赖忽略废弃API警告,打开
android/build.gradle,添加:subprojects { afterEvaluate { project -> if (project.hasProperty('android')) { android { lintOptions { disable 'DeprecatedApi' // 忽略废弃API警告 } } } } }
方案3:清理Flutter缓存确保依赖生效
如果执行上述操作后仍有问题,清理缓存重新拉取依赖:
flutter pub cache clean flutter pub get
内容的提问来源于stack exchange,提问作者LaurenTsai
相关产品推荐
相关产品推荐

