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