Flutter更新后构建失败:flutter.gradle第912行Jar.destinationDir方法异常
Flutter构建失败(Jar.destinationDir参数不兼容)解决方案
问题根源
本地Gradle版本较高(7.x及以上),而Flutter的flutter.gradle脚本仍在使用Gradle已废弃的destinationDir(File)方法,该方法在高版本Gradle中已被替换为destinationDirectory.set(File),导致参数类型不匹配报错。
解决步骤
1. 优先升级Flutter到稳定版(推荐)
运行以下命令升级到最新稳定版,官方会同步适配Gradle版本,从根源解决兼容性问题:
flutter channel stable flutter upgrade
2. 手动对齐Gradle与Flutter版本
如果暂时无法升级Flutter,可手动调整Gradle版本适配当前Flutter:
- 修改
android/build.gradle中的Gradle插件版本:buildscript { dependencies { // 替换为当前Flutter版本兼容的Gradle插件版本,比如Flutter 3.10对应7.4.2 classpath 'com.android.tools.build:gradle:7.4.2' } } - 修改
android/gradle/wrapper/gradle-wrapper.properties中的Gradle分发版本:// 对应上面插件版本的Gradle发行版,7.4.2插件对应7.5版本Gradle distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
3. 临时修改flutter.gradle脚本(不推荐长期使用)
找到报错的文件C:\src\flutter\packages\flutter_tools\gradle\flutter.gradle,定位到第912行:
- 将原代码中类似
jar.destinationDir = file(...)的语句,替换为:
注意保留原文件中的路径参数,仅修改方法调用部分。jar.destinationDirectory.set(file(...))
4. 清理并重新构建
完成上述操作后,执行以下命令清理缓存并重新构建:
flutter clean # Windows系统直接手动删除android/.gradle文件夹 flutter run
内容的提问来源于stack exchange,提问作者Escanor
相关产品推荐
相关产品推荐

