Flutter SDK 3.7.8/3.7.9报错:无法创建packLibsflutterBuildDebug任务
问题根源
Flutter 3.7.8和3.7.9版本的Android构建脚本中,对Jar任务的destinationDir属性的调用逻辑,与当前使用的Android Gradle插件(AGP 7.4.2)API不兼容。Gradle 7.x之后destinationDir已被废弃并移除旧签名,改用destinationDirectory,但这两个Flutter版本的构建脚本仍在使用旧调用方式,导致任务创建失败。
可行解决方案
降级Android Gradle插件版本
修改项目根目录下的build.gradle文件,将classpath调整为兼容版本:classpath 'com.android.tools.build:gradle:7.2.2'同时修改
gradle/wrapper/gradle-wrapper.properties中的distributionUrl,匹配对应Gradle版本:distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip升级Flutter SDK到修复版本
Flutter 3.7.10及后续稳定版已修复该Gradle API兼容问题,直接执行flutter upgrade升级到3.7.10或更高版本,无需调整Gradle配置即可解决。临时修改Flutter本地构建脚本(不推荐)
若暂时无法调整Flutter或Gradle版本,可找到Flutter SDK安装目录下的packages/flutter_tools/gradle/flutter.gradle文件,将所有调用jar.destinationDir的代码替换为jar.destinationDirectory.set(file(...))(或对应逻辑的destinationDirectory.get().asFile)。注意:该修改会在Flutter更新后被覆盖,仅作为临时应急方案。
验证步骤
修改配置后执行以下命令清理缓存并重新构建:
flutter clean flutter run
内容的提问来源于stack exchange,提问作者Hesham Elkotabi

