Android Gradle 插件 3.1.0 (2018 年 3 月)
此版本的 Android 插件需要以下内容
最低版本 | 默认版本 | 说明 | |
---|---|---|---|
Gradle | 4.4 | 4.4 | 要了解更多信息,请参阅 更新 Gradle。 |
SDK Build Tools | 27.0.3 | 27.0.3 | 安装 或 配置 SDK Build Tools。请记住,您不再需要使用 android.buildToolsVersion 属性指定构建工具的版本,插件默认使用最低所需版本。 |
新的 DEX 编译器 D8
默认情况下,Android Studio 现在使用名为 D8 的新的 DEX 编译器。DEX 编译是将 .class
字节码转换为 Android 运行时(或旧版 Android 的 Dalvik)的 .dex
字节码的过程。与之前的编译器 DX 相比,D8 编译速度更快,输出的 DEX 文件更小,同时具有相同或更好的应用运行时性能。
D8 不应该改变您日常的应用开发工作流程。但是,如果您遇到与新编译器相关的任何问题,请 报告错误。您可以通过在项目的 gradle.properties
文件中包含以下内容来临时停用 D8 并使用 DX
android.enableD8=false
对于 使用 Java 8 语言功能 的项目,增量反糖化默认启用。您可以在项目的 gradle.properties
文件中指定以下内容来停用它
android.enableIncrementalDesugaring=false.
预览用户:如果您已经在使用 D8 的预览版,请注意它现在针对 SDK 构建工具 中包含的库进行编译,而不是 JDK。因此,如果您访问存在于 JDK 中但在 SDK 构建工具库中不存在的 API,则会收到编译错误。
行为变更
-
在构建每个目标不同的 ABI 的多个 APK 时,不再默认生成以下 ABI 的 APK:
mips
、mips64
和armeabi
。如果您想构建目标这些 ABI 的 APK,则必须使用 NDK r16b 或更低版本 并在您的
build.gradle
文件中指定 ABI,如下所示splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
-
Android 插件的 构建缓存 现在会清除超过 30 天的缓存条目。
-
将
"auto"
传递给resConfig
不再会自动选择字符串资源打包到您的APK中。如果您继续使用"auto"
,插件会打包您的应用及其依赖项提供的所有字符串资源。因此,您应该改为指定您希望插件打包到APK中的每个区域设置。 -
由于本地模块无法依赖于您的应用的测试APK,因此使用
androidTestApi
配置(而不是androidTestImplementation
)向您的已 instrumentation 测试添加依赖项会导致 Gradle 发出以下警告:WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
修复
- 修复了 Android Studio 在组合构建中无法正确识别依赖项的问题。
- 修复了在单个构建中多次加载 Android 插件时(例如,当多个子项目在其 buildscript 类路径中都包含 Android 插件时)出现项目同步错误的问题。