AGP 3.5 与 Gradle 6 兼容吗?

Posted

技术标签:

【中文标题】AGP 3.5 与 Gradle 6 兼容吗?【英文标题】:Is AGP 3.5 compatible with Gradle 6? 【发布时间】:2020-03-28 07:31:03 【问题描述】:

我想知道我是否可以开始使用带有 android Gradle 插件 (AGP) 3.5 的 Gradle 6。

根据官方文档,它们不兼容:

插件版本 |所需的 Gradle 版本

3.5.0+ | 5.4.1-5.6.4

来源: https://developer.android.com/studio/releases/gradle-plugin

但是,在页面下方(对于 AGP 3.5.0),您可以阅读:

此版本的 Android 插件需要以下内容:

Gradle 5.4.1 或更高版本。

可能最后一部分只是旧信息(在 Gradle 6 发布之前发布?)。

但如果是这样,Gradle 6 有哪些已知问题?

【问题讨论】:

【参考方案1】:

我使用的是 AS 3.5.2 和 AGP 3.5.2,我只是将 distributionUrl 中的 gradle-wrapper.properties 换成了

https\://services.gradle.org/distributions/gradle-6.0.1-all.zip

同步、构建并部署到模拟器,一切正常。

我们应该这样做吗?没有

因为有很多外部插件、任务和无限的事情可能会在使用该特定版本的非官方支持的插件时出错。

我不认为冒险破坏某些东西(你甚至不会注意到)值得升级,但这是个人选择:)

【讨论】:

不是我想要的答案。我知道它可以编译。它甚至 似乎 工作(至少对于图书馆项目)。顺便说一句,你应该使用构建包装脚本来更新 Gradlew,而不是手动编辑,否则有些文件可能不是最新的。 如果不是在 AGP 团队工作的人,我认为没有人可以来这里说“继续使用 gradle 6,它可以 100% 工作” 是的。但我也对任何已知问题感兴趣,因为兼容性状态有些模糊。 不要认为存在“已知”问题,因为默认情况下没有人使用它。在这个过程中,你可能有点“孤独”。你可以继续看看它是如何进行的,如果你没有发现影响你的特定 gradle 配置的问题,你就可以了。如果您的问题是因为您想实现大量依赖 Gradle 6 功能的自定义任务,那么我可能不会继续这样做。而且有3.5.0+的表| 5.4.1-5.6.4 对我来说不够“模糊”(至少)。 我发现了这个问题:issuetracker.google.com/issues/144896521,它与AS 3.6 RC1 的发布相关联,它指出 AGP 3.6 是针对 Gradle 5.6.4 构建的。这意味着 AGP 3.5 肯定不是用 Gradle 6 构建/测试的。 (即使它可以像所说的那样完美地工作)

以上是关于AGP 3.5 与 Gradle 6 兼容吗?的主要内容,如果未能解决你的问题,请参考以下文章

Android踩坑小记:ndk版本与Android Gradle Plugin版本兼容

Android踩坑小记:ndk版本与Android Gradle Plugin版本兼容

Android踩坑小记:ndk版本与Android Gradle Plugin版本兼容

Android踩坑小记:ndk版本与Android Gradle Plugin版本兼容

如何在AGP 3.5和Gradle Wrapper 5.4.1中生成多个aar?

Gradle 与 AGP 构建 API: 如何编写插件