从错误日志可以看出,问题的核心是 Kotlin 编译器守护进程(Kotlin Compiler Daemon)在进行增量编译时出现了异常,并伴随文件路径的根目录不一致问题。
错误原因主要包括:
-
路径冲突:
C:\Users\YUAN
和D:\WORK
是两个不同的路径根目录,Kotlin 编译器可能无法正确解析它们的相对路径关系。 - 增量编译问题:Kotlin 的增量编译缓存可能损坏,导致编译失败。
-
插件或依赖问题:可能是依赖的插件(如
wakelock
)或编译器配置存在问题。
修复步骤
1. 清理项目缓存
清除所有缓存和生成的中间文件:
flutter clean
然后删除 build
文件夹和 .gradle
文件夹:
rm -rf android/.gradle
rm -rf build
重新获取依赖和编译:
flutter pub get
flutter build apk
2. 检查项目路径一致性
确保你的项目和所有依赖项都在同一个磁盘分区内。将项目移动到与 Flutter SDK 相同的磁盘。例如,把项目从 D:\WORK
移动到 C:\Users\YUAN
下的某个子文件夹。
3. 强制禁用增量编译
增量编译虽然能加快编译速度,但在某些情况下会引发问题。尝试在 android/gradle.properties
文件中添加以下内容:
kotlin.incremental=false
4. 更新依赖项
某些旧版插件可能与当前的 Flutter 或 Kotlin 编译器版本不兼容。更新依赖项:
- 确保
pubspec.yaml
中插件的版本是最新的:wakelock: ^0.6.2+2
- 运行以下命令更新依赖:
flutter pub upgrade
5. 检查 Kotlin 和 Gradle 插件版本
- 确保你的 Kotlin 和 Gradle 插件版本匹配:
- 检查
android/build.gradle
中的 Gradle 插件版本(例如,com.android.tools.build:gradle:7.4.2
)。 - 检查
android/gradle/wrapper/gradle-wrapper.properties
中的 Gradle 版本(例如,distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
)。 - 检查
kotlin_version
是否与 Gradle 插件版本兼容:ext.kotlin_version = "1.8.22"
- 检查
可以参考 Gradle Plugin Compatibility Table 确保版本一致。
6. 删除 Kotlin 编译器守护进程
Kotlin 守护进程可能有残留。尝试终止守护进程并清理相关缓存:
pkill -f kotlin-daemon
如果你在 Windows 上,手动结束 Kotlin 守护进程相关任务。
7. 重新编译项目
执行以下命令进行完整编译:
flutter build apk
结束语
Flutter是一个由Google开发的开源UI工具包,它可以让您在不同平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。从基础知识到高级技巧,从UI设计到性能优化,欢饮关注一起讨论学习,共同进入Flutter的精彩世界!