【Gradle】AGP升级7.0及适配Replugin的多包名工程改造

本文讲述了在Android项目中进行AGP7.0版本升级的实践,包括升级步骤、遇到的问题如三方库兼容、多包名工程改造的技巧,以及适配Replugin插件时的注意事项。作者分享了解决方案,如处理重复注册、资源管理和跨模块依赖问题等。

前言

随着AGP版本以及kotlin的普及,以及compose逐渐被大家接受,为了可以使用更多的新特性以及更好的性能,升级Android Gradle Plugin(AGP)以及Kotlin Gradle Plugin (KGP)已经是必不可少的步骤之一,其中AGP版本7.0、8.0的更新有较大的变化,本文会对自己的玩安卓项目进行AGP7.0的升级并且分享最近遇到的多包名工程化改造以及适配遇到的问题

AGP 版本参考与升级参考

推荐参考AGP 7.0升级
Gradle插件版本与gradle版本
AGP插件版本 所需的最低 Gradle 版本
8.1 8.0
8.0 8.0
7.4 7.5
7.3 7.4
7.2 7.3.3
7.1 7.2
7.0 7.0
4.2.0+ 6.7.1
4.1.x 6.5
4.0.x 6.1.1
3.6.x 5.6.4
3.5.x 5.4.1
3.4.x 5.1.1
3.3.x 4.10.x
3.2.x 4.6.x
3.1.x 4.4.x
3.0.x 4.1.x
Gradle 版本与kotlin插件版本
KGP version Gradle min and max versions AGP min and max versions
1.9.0 6.8.3 – 7.6.0 4.2.2 – 7.4.0
1.8.20 6.8.3 – 7.6.0 4.1.3 – 7.4.0
1.8.0 6.8.3 – 7.3.3 4.1.3 – 7.2.1
1.7.20 6.7.1 – 7.1.1 3.6.4 – 7.0.4
1.7.0 6.7.1 – 7.0.2 3.4.3 – 7.0.2
1.6.20 6.1.1 - 7.0.2 3.4.3 - 7.0.2
Gradle版本、Kotlin语言版本参考
Gradle version Embedded Kotlin version Kotlin Language version
5.0 1.3.10 1.3
5.1 1.3.11 1.3
5.2 1.3.20 1.3
5.3 1.3.21 1.3
5.5 1.3.31 1.3
5.6 1.3.41 1.3
6.0 1.3.50 1.3
6.1 1.3.61 1.3
6.3 1.3.70 1.3
6.4 1.3.71 1.3
6.5 1.3.72 1.3
6.8 1.4.20 1.3
7.0 1.4.31 1.4
7.2 1.5.21 1.4
7.3 1.5.31 1.4
7.5 1.6.21 1.4
7.6 1.7.10 1.4
8.0 1.8.10 1.8
8.2 1.8.20 1.8
8.3 1.9.0 1.8
AndroidStudio版本与kotlin插件版本
Android Studio 版本 Kotlin 插件版本 Kotlin 版本
3.0.x 1.2.x 1.2.x
3.1.x 1.2.x - 1.2.61 1.2.x
3.2.x 1.3.x - 1.3.50 1.3.x
3.3.x 1.3.x - 1.3.50 1.3.x
3.4.x 1.3.x - 1.3.50 1.3.x
3.5.x 1.3.x - 1.3.50 1.3.x
3.6.x 1.3.x - 1.3.72 1.3.x
4.0.x 1.4.x - 1.4.31 1.4.x
4.1.x 1.4.x - 1.4.31 1.4.x
4.2.x 1.5.x - 1.5.21 1.5.x
4.3.x 1.5.x - 1.5.21 1.5.x
2020.1.x 1.4.x - 1.4.31 1.4.x
2020.2.x 1.4.x - 1.4.31 1.4.x
2020.3.x 1.4.x - 1.4.31 1.4.x
4.4.x 1.6.x 1.6.x
Android Studio 与 AGP版本

在这里插入图片描述

AGP 7.0 升级

升级与三方库兼容

接下来进入正式的升级,如果用的是最新的AS,可以发现已经有了推荐升级的提示并且可以一键升级
在这里插入图片描述

点击后会自动修改gradle以及agp版本,但是还是有一些需要修改,以下是几个修改点

  • gradle/wrapper/gradle-wrapper.properties 设置镜像提高下载速度 https\://mirrors.cloud.tencent.com/gradle/gradle-7.5-all.zip
  • 设置的gradle#addBuildListener 监听器 buildStarted(gradle: Gradle) 方法被移除了
  • com.android.library 模块不再需要设置版本号和版本名称,其他的直接按照提示升级即可
  • kotlin版本升级至1.5.x版本

升级到7.0 也遇到一些问题,比如常见的一些三方库三方插件的升级以及兼容

  • 玩安卓项目接入booster,这里直接更新到最新版本
  • ARouter 不兼容,这里推荐直接替换为 therouter官网有一键升级的工具,这里也不展开
  • 兼容老换肤框架,因为换肤使用的换肤框架也很久没更新了,这里为了快速解决直接强制指定appcompat库版本
//    指定androidx版本,防止因为换肤库导致的崩溃
//    https://blog.youkuaiyun.com/charlinopen/article/details/126625175
    configurations.all {
        resolutionStrategy {
            force("androidx.appcompat:appcompat:1.2.0")
        }
    }
gradle插件等兼容
  • gradle插件提示重复注册

这里有点莫名其妙,因为本身的玩安卓项目带buildSrc有一些自己练手的transform,这里根据提示去指定一个重复的策略

// https://docs.gradle.org/7.5/javadoc/org/gradle/api/file
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值