返回文章列表

Google Play

干货分享 | Android Studio的 Gradle 从 Groovy 到 KTS 转变

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

干货分享 | Android Studio的 Gradle 从 Groovy 到 KTS 转变

干货分享 | Android Studio的 Gradle 从 Groovy 到 KTS 转变

大家好,我是牢鹅!最近我在创建新项目的时候,发现新版 Android Studio 的 gradle 文件已经是默认使用 Kotlin 脚本(KTS)了。说来惭愧,由于太久没有接触过新项目和新版 AS,竟一时有些手足无措,因为有些配置代码老想着 copy 老项目的快一些,结果竟然一堆红色 error。

后来网上一通查找,完成 Groovy 到 KTS 迁移之余,顺便把差异都记录下来整理成文档,方便下次项目继续 copy。

干货分享 | Android Studio的 Gradle 从 Groovy 到 KTS 转变

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"

字符串赋值语法保持不变

文件变化具体差异

  1. settings.gradle

// Groovy

  1. 项目级 build.gradle

// Groovy

  1. 模块级 build.gradle
  • plugins

// Groovy

  • android

// Groovy

  1. 其余常见差异
  • 动态版本号处理

// Groovy

  • 自定义任务

// Groovy

配置修改后验证

  1. 命令行验证

./gradlew clean assembleDebug --dry-run

  1. 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 均可,资金灵活!

推荐阅读

继续阅读相关出海经验。

评论

一起交流这篇文章。

暂无评论,欢迎留下第一条交流。