Flutter构建Release APK失败,Jar.destinationDir方法签名不匹配求助
解决Flutter构建Release APK时的
Jar.destinationDir()方法不存在错误 问题原因
报错核心是Flutter SDK版本与Gradle版本不兼容:你使用的Flutter 3.3.7的flutter.gradle脚本仍在使用Gradle旧API destinationDir(),而Gradle 8.0+已将该API替换为destinationDirectory.set(),导致方法签名不匹配,无法创建打包任务。
解决方案
提供两种可行方案,按需选择:
方案1:降级Gradle到Flutter 3.3.7兼容的版本
- 修改
android/gradle/wrapper/gradle-wrapper.properties中的distributionUrl:distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip - 确认
android/build.gradle中的Android Gradle Plugin版本与Gradle匹配(当前配置已为7.4.2,无需修改):classpath "com.android.tools.build:gradle:7.4.2" - 执行命令清理缓存并重新构建:
flutter clean flutter pub get flutter build apk --release
方案2:升级Flutter SDK到适配Gradle 8.0的版本
- 升级Flutter到稳定版(至少3.7.12+,该版本及以上已适配Gradle 8.0):
flutter upgrade - 执行清理和构建命令:
flutter clean flutter pub get flutter build apk --release
额外环境问题修复
从flutter doctor -v结果看,还有两个问题需处理以避免后续异常:
- 修复Dart路径冲突:将Flutter SDK的
bin目录(D:\programs\flutter_windows_3.3.7-stable\flutter\bin)移到系统环境变量Path最前端,确保使用Flutter内置的Dart版本。 - 接受Android许可证:执行
flutter doctor --android-licenses,按提示接受所有许可证。
内容的提问来源于stack exchange,提问作者Alaaeldin Mohamed
相关产品推荐
相关产品推荐

