Android Gradle 升级 7.1.0 的一些注意事项与备忘
Android Gradle Plugin(后简称为AGP),在 7.0 版本之后与 Gradle 版本版本号保持同步(大喜,不需要再去查 gradle 与 AGP 的版本号对应了)。
本文记录了在AS升级到 Android Studio Bumblebee | 2021.1.1 版本后,项目默认创建使用 AGP 7.1.0 的一些注意事项。
先看一个在 Gradle 6.7.1+AGP 4.2 时代(后简称为AGP 6.0)最常见的项目配置:
AGP 6.0
settings.gradle
1 | //包含了我们项目所有用到的模块 |
build.gradle
1 | //项目中使用的插件所在的仓库与插件库依赖 |
app/build.gradle
1 | //使用到的gradle插件 |
在 7.0 之后个人感觉使用了更多的 Gradle 的 DSL,变化如下:
APG 7.0
首先是 settings.gradle 的变化
1 | pluginManagement { |
现在setttings中承担了原先项目build.gradle做的一些工作:项目插件管理与项目依赖仓库管理,比如原本我们使用阿里镜像仓库都是写在项目build.gradle中的,现在需要写在 settings.gradle 的 dependencyResolutionManagement 填写。
build.gradle
1 | //项目中使用到的插件与版本 |
这里的 id 'org.jetbrains.kotlin.android' version '1.6.10' apply false
大至等同于 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.31"
所代表的含义,及项目中使用的 gradle 插件与版本。
app/build.gradle
1 | plugins { |
模块中使用插件的语句发生了变化,由原来的 apply plugin: 'com.android.application'
,变成了 dsl 语句的模式,kotlin插件也从 apply plugin: 'kotlin-android'
变成了 id 'org.jetbrains.kotlin.android'
。例如在kotlin中非常好用的 @Parcelize
注解,现在需要在 plugins{}
中添加 id 'kotlin-parcelize'
然后在相应类中使用注解。
例如:
1 | import android.os.Parcelable |
补充
新版的AS Bumblebee + AGP7.0 在使用gradle assemble打包指令时,最终的产物目录变成了:app\build\intermediates\apk\release\
,而非原先的 `app\build\outputs\apk\release\