
大家好,我是牢鹅!最近我在创建新项目的时候,发现新版 Android Studio 的 gradle 文件已经是默认使用 Kotlin 脚本(KTS)了。说来惭愧,由于太久没有接触过新项目和新版 AS,竟一时有些手足无措,因为有些配置代码老想着 copy 老项目的快一些,结果竟然一堆红色 error。
后来网上一通查找,完成 Groovy 到 KTS 迁移之余,顺便把差异都记录下来整理成文档,方便下次项目继续 copy。

KTS 的优势
首先KTS是什么?
KTS:是指 Kotlin 脚本,这是 Gradle 在 build 配置文件中使用的一种 Kotlin 语言形式。Kotlin 脚本是可从命令行运行的 Kotlin 代码。
他是 Gradle 官方推荐的构建脚本语言?相较于传统的 Groovy 语法,具有以下优势:
- 类型安全:Kotlin 的静态类型检查能减少构建脚本中的潜在错误。
- IDE 支持:Android Studio 对 KTS 提供更好的语法高亮、自动补全和错误提示。
- 代码复用性:支持将通用配置抽取为独立 Kotlin 文件(如
dependencies.kt)。
- 性能优化:Gradle 7.0+ 对 KTS 构建缓存机制有专项优化。
脚本文件命名
脚本文件扩展名取决于编写 build 文件所用的语言:
- 用 Groovy 编写的 Gradle build 文件使用
.gradle文件扩展名。
- 用 Kotlin 编写的 Gradle build 文件使用
.gradle.kts文件扩展名。
常见语法差异处理
Groovy 语法
KTS 语法
说明
implementation '...'
implementation("...")
依赖声明必须使用双引号和括号
ext.versionCode = 1
val versionCode by extra(1)
扩展属性需使用委托语法
fileTree(dir: 'libs')
fileTree("dir" to "libs")
Map参数需显式声明键值对
version = "1.0.0"
version = "1.0.0"
字符串赋值语法保持不变
文件变化具体差异
- settings.gradle
// Groovy
- 项目级 build.gradle
// Groovy
- 模块级 build.gradle
- plugins
// Groovy
- android
// Groovy
- 其余常见差异
- 动态版本号处理
// Groovy
- 自定义任务
// Groovy
配置修改后验证
- 命令行验证
./gradlew clean assembleDebug --dry-run
- IDE验证
- 检查 Android Studio 的 Build Output 窗口是否有语法错误
- 验证所有 Build Variants 的编译结果
注意事项
- 逐步修改:建议按模块逐个修改,避免全量修改导致构建失败。
- 版本控制:使用 Git 等工具做好版本备份,每次修改后立即提交。
- 兼容性检查:某些三方插件可能暂不支持 KTS,需关注插件文档
结语
以上,就是本次的 Gradle 从 Groovy 到 KTS 变化差异展示。牢鹅还是建议大家新项目尽量使用 KTS,毕竟 Google 官方都在推荐。老项目呢,能迁移到 KTS 也可以系统性地平稳迁移。但是不必太过执着,确保项目稳定性才是最重要的。
上面的文章也只是一少部分的参考示例,如果你有其他推荐或者补充,欢迎在评论区与我们交流。添加牢鹅的微信:kris_wuii,加入我的GP出海交流群,一起交流学习。(此群主要面向交流谷歌政策、账号和上架问题的朋友,同时分享行业信息资源)
公告区🔈
此库的数据源基于我本人以及GP出海交流群的群友的过往封号申诉案例,至此已收录百余例申诉案例,其中最多违规理由为高风险,其次是谷歌 8.3 或 10.3,剩下的封号理由为屡次违规、违反金融条例、恶意软件等。记录了信息包括:应用类型、账号信息、封号原因、处理过程以及最终结果。
如果你也想将封号申诉的案例同步到此库,或者寻求封号申诉帮助,请私信我。
腾讯在线文档链接如下或点击文末「阅读原文」:
https://docs.qq.com/sheet/DZldVTnBqeGxFRlBO?tab=BB08J2
GitHub链接如下:
https://github.com/AndroidGODev/Bad-Google-Play
优质合作伙伴,助您出海无忧👇

全球收款结汇我选易宝支付,USD、CNY 均可,资金灵活!

评论
一起交流这篇文章。