Flutter构建失败:PathNotFoundException与Gradle插件弃用问题求助
Flutter Android构建失败求助
错误日志
当前通过`apply script`方式强制应用Flutter的app_plugin_loader Gradle插件,该方式已被弃用,后续版本会移除。需迁移至声明式的plugins块应用Gradle插件。 未处理异常: PathNotFoundException: 无法打开文件,路径 = '/Users/.../.dart_tool/flutter_build/12ac92aa90402be39d79fb4ebb8222b4/program.dill' (系统错误:文件或目录不存在,错误码 = 2) #0 _checkForErrorResponse (dart:io/common.dart:55) #1 _File.open.<anonymous closure> (dart:io/file_impl.dart:381) <asynchronous suspension> #2 _FileStreamConsumer.addStream.<anonymous closure> (dart:io/file_impl.dart:205) <asynchronous suspension> Target kernel_snapshot_program 执行失败: Exception 构建失败,出现异常。 * 错误原因: 任务 ':app:compileFlutterBuildDebug' 执行失败。 > 进程 '/Users/szymonkluzek/flutter/bin/flutter' 以非零退出值1结束 * 建议尝试: > 使用 --stacktrace 参数获取堆栈跟踪信息。 > 使用 --info 或 --debug 参数获取更多日志输出。 > 使用 --scan 参数获取完整分析报告。 构建耗时20s失败 错误:Gradle任务assembleDebug执行失败,退出码1
环境版本信息
Flutter 3.24.5 • stable通道 框架 • 修订版本 dec2ee5c1f • 2024-11-13 11:13:06 -0800 引擎 • 修订版本 a18df97ca5 工具 • Dart 3.5.4 • DevTools 2.37.3 Android SDK版本 35.0.0 Android Studio版本 2024.2 compileSdkVersion 35 targetSdkVersion 35 distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-all.zip classpath 'com.android.tools.build:gradle:8.1.1' openjdk版本 "17.0.13" 2024-10-15 OpenJDK Runtime Environment Homebrew (build 17.0.13+0) OpenJDK 64-Bit Server VM Homebrew (build 17.0.13+0, 混合模式, 共享) ext.kotlin_version = '1.8.10' Dart SDK版本: 3.5.4 (stable) (Wed Oct 16 16:18:51 2024 +0000) on "macos_arm64"
已尝试的修复操作
flutter clean flutter pub get flutter pub upgrade flutter pub outdated flutter upgrade --force flutter pub cache repair rm -rf .dart_tool ./gradlew --stop ./gradlew clean ./gradlew build --stacktrace rm -rf ~/.gradle/caches/
问题背景
添加Firebase Messaging后触发该问题,iOS端构建正常,但执行./gradlew build --refresh-dependencies时会出现相同错误:
> Task :app:compileFlutterBuildDebug FAILED FAILURE: Build failed with an exception. * 错误原因: 任务 ':app:compileFlutterBuildDebug' 执行失败。 > 进程 '/Users/szymonkluzek/flutter/bin/flutter' 以非零退出值1结束
解决建议
1. 修复Gradle插件声明方式
找到项目根目录的android/build.gradle,将旧的apply方式替换为声明式plugins块:
- 移除原有代码:
apply plugin: 'com.android.application' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" - 替换为:
plugins { id "com.android.application" id "dev.flutter.flutter-gradle-plugin" }
确保插件版本与本地Flutter版本匹配,若为Flutter模块嵌入原生项目,需对应调整配置。
2. 校验Firebase配置完整性
确认android/app目录下存在google-services.json,并检查Gradle配置:
- 根目录
build.gradle添加:dependencies { classpath 'com.google.gms:google-services:4.4.2' } - app模块
build.gradle末尾添加:apply plugin: 'com.google.gms.google-services'
3. 彻底清理并重新构建
执行以下命令强制清理缓存并重新生成构建文件:
flutter clean rm -rf ~/.dart_tool rm -rf android/.gradle flutter pub get flutter run --debug --verbose
--verbose参数可输出详细日志,帮助定位kernel快照生成失败的具体原因。
4. 检查目录权限
确保当前用户对.dart_tool目录有读写权限:
chmod -R 755 ~/.dart_tool
5. 版本兼容性测试
若上述方法无效,可临时降级Flutter版本至3.22.x稳定版,验证是否为版本适配问题:
flutter downgrade 3.22.3
内容的提问来源于stack exchange,提问作者Szymon
相关产品推荐
相关产品推荐

