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

Flutter旧项目升级Gradle后构建失败,Jar.destinationDir方法报错

解决Flutter旧项目升级Gradle后packLibsflutterBuildDebug任务创建失败问题

这个错误的核心原因是旧版Flutter的flutter.gradle脚本使用了Gradle已废弃/变更的API:高版本Gradle中,Jar任务的destinationDir属性已被替换为destinationDirectory(类型为Property<File>),旧脚本直接传递File对象给destinationDir()方法导致签名不匹配。

解决方案1:修改Flutter官方gradle脚本(快速临时修复)

  1. 打开报错的脚本文件:C:\Users\Admin\Downloads\flutter_windows_3.7.11-stable\old_version_2.5\flutter\packages\flutter_tools\gradle\flutter.gradle
  2. 定位到第763行,找到类似以下的代码:
    jar.destinationDir = file(...)
    
  3. 将其替换为Gradle新版本兼容的写法:
    jar.destinationDirectory.set(file(...))
    
  4. 保存文件后,重新执行构建命令:flutter run 或 ./gradlew assembleDebug

解决方案2:匹配Flutter与Gradle的兼容版本(长期稳定方案)

旧版Flutter(如2.5.x)和高版本Gradle存在兼容性断层,建议:

  • 若坚持使用Flutter 2.5.x,将Gradle版本回退到兼容范围(建议Gradle 7.0.x,对应Android Gradle Plugin 4.2.x)
  • 若要保留高版本Gradle,同步升级Flutter SDK到对应兼容版本(如Flutter 3.7.x对应Gradle 7.4+、AGP 7.2+),避免修改官方脚本的潜在风险

解决方案3:排查依赖兼容性

部分停止维护的依赖可能未适配高版本Gradle,可:

  • 回退最近升级的可疑依赖到旧版本,验证是否解决问题
  • 寻找停止维护依赖的替代库,替换后重新构建

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 22:38:14