展开本页目录
开始前准备什么
- 下载练习包,先阅读 README 中的依赖和运行范围。
- 使用独立练习目录;starter 是待完成任务,reference 是作者参考实现。
- 账号型功能须在自己的授权环境执行;本题不要求提供真实凭据。
- 确认已在AGP9
- 盘点注解插件
- 改用内置Kotlin
- 迁移编译选项
- 检查新DSL
- 执行原生验证
- 保留前后工程
1. 确认已在AGP9
先读根插件版本9.0.1及官方兼容表,本题不从AGP8升级,也不处理KMP。准备Gradle9.1.0、JDK17和对应SDK。
2. 盘点注解插件
检查是否存在KSP、Hilt或kapt。本题原始小工程均无,不为完成迁移而无端加插件;真实项目须按官方要求核版本。
本题本地命令
node inspect.mjs
# 自有Android SDK环境,在after目录执行:
gradle help
gradle build --dry-run3. 改用内置Kotlin
删除模块和根中外加的org.jetbrains.kotlin.android声明。移除android.builtInKotlin=false兼容开关,避免双Kotlin插件同时生效。
4. 迁移编译选项
把android.kotlinOptions移至kotlin.compilerOptions,并用JvmTarget.JVM_17。Java compileOptions同步17,不能靠忽略编译警告通过。
5. 检查新DSL
移除android.newDsl=false,核对自己使用的Android扩展接口。项目无BuildConfig自定义项,真实项目有时需单独迁移。
6. 执行原生验证
在你的SDK环境先IDE sync,再gradle help及gradle build --dry-run。本文未运行这些,不把Node字符串合同断言当Gradle验收。
7. 保留前后工程
before/after都可单独检查,保留明确源码diff与未执行清单。不运行clean掩盖问题,不使用Skill禁止的Python修复器。
怎样确认已经完成
- 非KMP
- 按官方兼容表冻结版本
- IDE/Gradle检查与真正编译分开记录
- 输入工程已是AGP9.0.1且非KMP;已完成源码合同对照,未执行Gradle IDE sync、help、build dry-run或APK构建,不把静态检查当原生迁移成功。
常见问题
AGP 9 自带 Kotlin 后旧插件应该怎么迁?
先确认版本已达到9且不是KMP,再迁移built-in Kotlin与新DSL。本题保留前后源码和静态合同,Gradle原生检查仍需你的SDK环境。
AI 升级 Android 构建配置后怎样确认 APK 真能编译?
删除重复Kotlin插件后要迁移compilerOptions、JDK目标和兼容开关,并检查KSP/Hilt/kapt等真实依赖。移除一行并不等于迁移验收完成。
哪些功能已经实际执行?
输入工程已是AGP9.0.1且非KMP;已完成源码合同对照,未执行Gradle IDE sync、help、build dry-run或APK构建,不把静态检查当原生迁移成功。



