当在新版本的Android Studio导入一些旧的项目时,由于gradle版本不同会出现下面找不到类的问题。
在这里插入图片描述
这时大多数Android开发者苦恼的事情,当然可以手动修改gradle为兼容的版本。但下面推荐Google的一款Android Gradle 插件来自动更新gradle,省时省力,方便快捷,少了的许多苦恼。

Android Gradle 插件介绍

Android Gradle 插件 (AGP) 升级助理是 Android Studio 中的一个工具,可帮助您升级项目所使用的 AGP 版本。

AGP 升级助理的用途是什么?

AGP 升级助理将引导您完成升级 AGP 版本所需的更改。以下是升级助理最常见的用例:

语法更改:升级助理会尝试将旧版 AGP 的 build 文件转换为新版 AGP 所需的文件。在开发 AGP 时,我们会更新 build 文件,以支持逐步被替换、废弃或不受支持的接口。

AGP 和 Gradle 之间的兼容性要求:升级助理了解 AGP 和 Gradle 之间的兼容性要求,并可帮助您确保使用您的 AGP 版本所需的 Gradle 版本。

AGP 与第三方 Gradle 插件之间的兼容性要求:升级助理了解 AGP 与某些第三方 Gradle 插件之间的兼容性要求,并可帮助您确保使用您的 AGP 版本所需的第三方 Gradle 插件版本。

一般来说,升级助理旨在消除部分对 build 文件进行试错性更改的需要,或推测升级后错误消息的含义,并解释有必要进行其建议的更改的原因。

如何使用 AGP 升级助理

如需使用升级助理,请确保您的项目结构符合要求,然后通过 Android Studio 运行它,如下所述。

设置
在运行升级助理之前,请确保您的项目格式正确并且已备份。

使用 Gradle build 文件和网域专用语言构建您的项目
AGP 升级助理在您执行以下操作时最有可能发挥作用:

  • 使用 Gradle build 文件配置 build:升级助理依赖于 Gradle build 文件的静态分析。若要充分利用升级助理,您应该使用这些 build 文件配置 build。请注意,升级助理不支持使用 buildSrc 定义 build 文件中使用的常量和变量的项目。通常,我们不建议使用 buildSrc 构建项目,因为这样做可能会非常低效:对 buildSrc 常量和变量的更改(无论多微小),都会触发重新构建整个项目。
  • 使用声明式 build 网域专用语言:Gradle build 文件完全以 Groovy 和/或 Kotlin 编程语言编写;不过,项目配置表示的声明性越强,升级助理成功找到需要为升级进行调整的所有位置的几率就越大。

即使项目未超出这些限制,升级助理仍可能无法执行彻底的升级。如需有关如何解决或报告 bug 的指导,请参阅问题排查。

备份您的项目
在开始使用升级助理之前,建议您确保项目不存在版本控制系统看来未提交的任何更改。如果您未使用版本控制,建议您在此时备份最新一个已知的正常版本。

在升级助理运行且成功构建和测试项目后,您可以将项目的新版本提交到您的版本控制系统。
运行升级助理
如需运行升级助理,请按以下步骤操作:

  1. 从通知提示中启动升级助理,或转到 Tools > AGP Upgrade Assistant… 启动升级助理。随即出现的工具窗口中会显示从项目的当前版本 AGP 升级到此版本 Android Studio 所支持的最新版本 AGP 的默认详细信息。
    在这里插入图片描述

  2. 查看必需的步骤和建议的步骤。左侧面板中有一个包含复选框的树状图,其中详细列出了升级过程中的各个步骤,并按照对于更新而言是必需步骤还是建议步骤,以及是否是其他步骤的先决条件进行分类。选择树状图中的各个项可以在主面板中显示有关每个步骤的更多详细信息。

  3. 运行升级,方法是选择必需或所需的步骤,然后点击 Run selected steps。升级助理会对项目 build 文件进行更改,并尝试将新的项目 build 与 Android Studio 同步。如果您有多个模块,这可能需要一些时间,因为可能需要下载新版插件和库。

  4. 在项目与 Android Studio 成功同步后,构建项目并运行测试套件,以验证升级操作是否未更改任何功能。

  5. 确认项目处于正常状态后,请将项目的新版本提交到您的版本控制系统。

可以在Upgrade Assistant面板中自定义要更新的版本号,内容参考自官方文档android developer

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐