mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-03-30 13:43:26 +08:00
2.5 KiB
2.5 KiB
description
| description |
|---|
| 修复 Android 和 KMP 项目的 Gradle 构建错误 |
Gradle 构建修复
逐步修复 Android 和 Kotlin 多平台项目的 Gradle 构建和编译错误。
步骤 1:检测构建配置
识别项目类型并运行相应的构建:
| 指示符 | 构建命令 |
|---|---|
build.gradle.kts + composeApp/ (KMP) |
./gradlew composeApp:compileKotlinMetadata 2>&1 |
build.gradle.kts + app/ (Android) |
./gradlew app:compileDebugKotlin 2>&1 |
settings.gradle.kts 包含模块 |
./gradlew assemble 2>&1 |
| 配置了 Detekt | ./gradlew detekt 2>&1 |
同时检查 gradle.properties 和 local.properties 以获取配置信息。
步骤 2:解析并分组错误
- 运行构建命令并捕获输出
- 将 Kotlin 编译错误与 Gradle 配置错误分开
- 按模块和文件路径分组
- 排序:先处理配置错误,然后按依赖顺序处理编译错误
步骤 3:修复循环
针对每个错误:
- 读取文件 — 错误行周围的完整上下文
- 诊断 — 常见类别:
- 缺少导入或无法解析的引用
- 类型不匹配或不兼容的类型
build.gradle.kts中缺少依赖项- Expect/actual 不匹配 (KMP)
- Compose 编译器错误
- 最小化修复 — 解决错误所需的最小改动
- 重新运行构建 — 验证修复并检查新错误
- 继续 — 处理下一个错误
步骤 4:防护措施
如果出现以下情况,请停止并询问用户:
- 修复引入的错误比解决的错误多
- 同一错误在 3 次尝试后仍然存在
- 错误需要添加新的依赖项或更改模块结构
- Gradle 同步本身失败(配置阶段错误)
- 错误出现在生成的代码中(Room、SQLDelight、KSP)
步骤 5:总结
报告:
- 已修复的错误(模块、文件、描述)
- 剩余的错误
- 引入的新错误(应为零)
- 建议的后续步骤
常见的 Gradle/KMP 修复方案
| 错误 | 修复方法 |
|---|---|
commonMain 中无法解析的引用 |
检查依赖项是否在 commonMain.dependencies {} 中 |
| Expect 声明没有 actual 实现 | 在每个平台源码集中添加 actual 实现 |
| Compose 编译器版本不匹配 | 在 libs.versions.toml 中统一 Kotlin 和 Compose 编译器版本 |
| 重复类 | 使用 ./gradlew dependencies 检查是否存在冲突的依赖项 |
| KSP 错误 | 运行 ./gradlew kspCommonMainKotlinMetadata 重新生成 |
| 配置缓存问题 | 检查是否存在不可序列化的任务输入 |