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

如何解决Flutter项目中「Exception: Gradle task assembleDebug failed with exit code 1」错误?

解决permission_handler编译错误的方案

看起来你遇到的核心问题是permission_handler 8.2.5版本依赖了Android 11(API 30,对应VERSION_CODES.R)和Android 12(API 31,对应VERSION_CODES.S)的权限相关API,但你的项目targetSdkVersion设置为29(Android 10),导致编译时找不到这些新API的符号,从而抛出大量"找不到符号"的错误。

下面给你两种可行的解决路径:

路径一:升级Android项目配置适配高版本依赖

如果你愿意升级项目的Android目标版本,可以按以下步骤操作:

  1. 打开android/app/build.gradle文件,修改compileSdkVersion和targetSdkVersion为至少30(推荐31,覆盖新蓝牙权限的支持):
android {
    compileSdkVersion 31
    defaultConfig {
        minSdkVersion 23
        targetSdkVersion 31
        multiDexEnabled true
    }
}
  1. 执行以下命令清理缓存并重新拉取依赖:
flutter clean
flutter pub get
  1. 重新尝试编译项目,此时应该能找到对应的API符号,解决编译错误。

路径二:降级permission_handler到兼容targetSdk 29的版本

如果暂时不想升级Android目标版本,可以将permission_handler降级到兼容API 29的版本:

  1. 在pubspec.yaml中明确指定你原本声明的8.1.4+2版本,同时添加依赖覆盖(防止其他依赖间接升级该包):
dependencies:
  # 其他依赖保持不变
  permission_handler: ^8.1.4+2

dependency_overrides:
  permission_handler: 8.1.4+2
  1. 同样执行清理和拉取依赖的命令:
flutter clean
flutter pub get
  1. 重新编译项目,此时使用的permission_handler版本不会调用API 30+的符号,就能正常编译了。

另外提一句:你看到的那些"使用或覆盖了已废弃的API"的警告只是提示,不会影响编译成功,主要的阻碍还是permission_handler版本和Android目标版本不匹配的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 20:29:06