Gradle 的 Android 插件,修订版 1.5.0(2015 年 11 月)

依赖项
最低版本 默认版本 备注
Gradle 2.2.1 2.2.1 要了解更多信息,请参阅 更新 Gradle
SDK 构建工具 21.1.1 21.1.1 安装配置 SDK 构建工具。
常规说明
  • 将数据绑定插件集成到 Gradle 的 Android 插件中。要启用它,请将以下代码添加到使用该插件的每个项目 build.gradle 文件中
  • android {
        dataBinding {
            enabled = true
        }
    }
            
    android {
        dataBinding {
            enabled = true
        }
    }
            
  • 添加了一个新的 Transform API,允许第三方插件在将已编译的 .class 文件转换为 .dex 文件之前对其进行操作。Transform API 简化了自定义类操作的注入,同时提供了更多关于您可以操作内容的灵活性。要将转换插入构建中,请创建一个实现 Transform 接口之一的新类,并使用 android.registerTransform(theTransform)android.registerTransform(theTransform, dependencies)将其注册。无需将任务连接在一起。请注意有关 Transform API 的以下事项:
    • 转换可以应用于以下一项或多项:当前项目、子项目和外部库。
    • 必须全局注册转换,这会将其应用于所有变体。
    • 通过 Java 代码覆盖库 (JaCoCo)、ProGuard 和 MultiDex 进行的内部代码处理现在使用 Transform API。但是,Java Android 编译器工具包 (Jack) 不使用此 API:只有 javac/dx 代码路径才使用。
    • Gradle 按此顺序执行转换:JaCoCo、第三方插件、ProGuard。第三方插件的执行顺序与其添加转换的顺序相匹配;第三方插件开发者无法通过 API 控制转换的执行顺序。
  • 已弃用 ApplicationVariant 类中的 dex getter。您不能再通过变体 API 访问 Dex 任务,因为它现在通过转换完成。目前没有替代方案来控制 dex 过程。
  • 修复了资产的增量支持。
  • 通过使其可用于测试项目来改进 MultiDex 支持,并且测试现在会自动具有 com.android.support:multidex-instrumentation 依赖项。
  • 添加了在 Gradle 构建调用异步任务并且工作进程中出现故障时,能够正确使 Gradle 构建失败并报告根本原因的功能。
  • 添加了对在包含多个 ABI 的变体中配置特定应用程序二进制接口 (ABI) 的支持。
  • 在安装或运行测试时,添加了对 ANDROID_SERIAL 环境变量的逗号分隔的设备序列号列表的支持。
  • 修复了在运行 Android 5.0(API 级别 20 及更高版本)的设备上,当 APK 名称包含空格时发生的安装失败问题。
  • 修复了与 Android 资源打包工具 (AAPT) 错误输出相关的各种问题。
  • 添加了 JaCoCo 增量检测支持,以加快增量构建速度。Android Gradle 插件现在直接调用 JaCoCo 检测器。要强制使用较新版本的 JaCoCo 检测器,需要将其添加为构建脚本依赖项。
  • 修复了 JaCoCo 支持,使其忽略非类文件。
  • 添加了矢量 drawable 支持,可在构建时生成 PNG 以实现向后兼容性。Android Gradle 插件会为资源目录中找到的每个矢量 drawable 生成 PNG,这些矢量 drawable 没有指定 API 版本,或者在应用清单的 `<uses-sdk> 元素中将 `android:minSdkVersion 属性指定为 20 或更低版本。可以使用 `build.gradle 文件的 `defaultConfig 或 `productFlavor 部分中的 `generatedDensities 属性设置 PNG 密度。
  • 添加了可模拟 `android.jar 的共享,插件仅生成一次并将其用于单元测试。多个模块(例如 `app 和 `lib)现在共享它。删除 `$rootDir/build 以重新生成它。
  • 更改了 Java 资源的处理过程,使其在混淆任务之前发生,而不是在 APK 打包期间发生。此更改允许混淆任务有机会在包混淆后调整 Java 资源。
  • 修复了在实验性库插件中使用 Java 本地接口 (JNI) 代码时出现的问题。
  • 在实验性库插件中添加了单独设置平台版本(与 `android:compileSdkVersion 属性分开)的功能。