Android Gradle 插件 3.2.0 (2018 年 9 月)
此版本的 Android 插件需要以下内容
最低版本 | 默认版本 | 说明 | |
---|---|---|---|
Gradle | 4.6 | 4.6 | 要了解更多信息,请参阅 更新 Gradle。 |
SDK 构建工具 | 28.0.3 | 28.0.3 | 安装 或 配置 SDK 构建工具。 |
3.2.1 (2018 年 10 月)
通过此更新,您不再需要为 SDK 构建工具指定版本。Android Gradle 插件现在默认使用版本 28.0.3。
新功能
-
支持构建 Android 应用包:应用包是一种新的上传格式,它包含您应用的所有已编译代码和资源,同时将 APK 生成和签名推迟到 Google Play 商店。您不再需要构建、签名和管理多个 APK,用户可以获得针对其设备优化的较小下载文件。要了解更多信息,请阅读 关于 Android 应用包。
-
使用注解处理器时改进增量构建速度的支持:
AnnotationProcessorOptions
DSL 现在扩展了CommandLineArgumentProvider
,这使您或注解处理器作者能够使用 增量构建属性类型注解 为处理器添加注解参数。使用这些注解可以提高增量构建和缓存清除构建的正确性和性能。要了解更多信息,请阅读 向注解处理器传递参数。 -
AndroidX 迁移工具:当将 Android Gradle 插件 3.2.0 与 Android 3.2 及更高版本一起使用时,您可以通过从菜单栏中选择重构 > 迁移到 AndroidX 来迁移项目的本地和 Maven 依赖项以使用新的 AndroidX 库。使用此迁移工具还会在您的
gradle.properties
文件中将以下标志设置为true
-
android.useAndroidX
:设置为true
时,Android 插件将使用相应的 AndroidX 库而不是 Support Library。如果未指定此标志,则插件默认将其设置为false
。 -
android.enableJetifier
:设置为true
时,Android 插件会自动迁移现有第三方库以使用 AndroidX,方法是重写其二进制文件。如果未指定此标志,插件默认将其设置为false
。只有在android.useAndroidX
也设置为true
时,才能将此标志设置为true
,否则会发生构建错误。了解更多信息,请阅读AndroidX 概述。
-
-
新的代码缩减器 R8:R8 是一种用于代码缩减和混淆的新工具,它取代了 ProGuard。您可以通过在项目的
gradle.properties
文件中包含以下内容来开始使用 R8 的预览版本。android.enableR8 = true
android.enableR8 = true
行为变更
-
现在默认启用使用 D8 进行去糖化。
-
AAPT2 现在位于 Google 的 Maven 仓库中。要使用 AAPT2,请确保您的
build.gradle
文件中包含google()
依赖项,如下所示:buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
-
现在默认启用原生 Multidex。以前版本的 Android Studio 在将应用的调试版本部署到运行 Android API 级别 21 或更高版本的设备时启用原生 Multidex。现在,无论您是部署到设备还是构建发行版 APK,Android Gradle 插件都会为所有设置
minSdkVersion=21
或更高的模块启用原生 Multidex。 -
插件现在强制执行 protobuf 插件 (0.8.6)、Kotlin 插件 (1.2.50) 和 Crashlytics 插件 (1.25.4) 的最低版本。
-
特性模块插件
com.android.feature
现在强制仅使用字母、数字和下划线来指定模块名称。例如,如果您的特性模块名称包含短划线,则会发生构建错误。此行为与动态特性插件的行为一致。
错误修复
- 现在可以在具有数据绑定的项目中缓存 JavaCompile。(Issue #69243050)
- 改进了对具有数据绑定的库模块的编译避免。(Issue #77539932)
- 如果您在早期版本中由于一些不可预测的构建错误而禁用了它,现在可以重新启用按需配置。(Issue #77910727)