Complemento de Android para Gradle, revisión 1.5.0 (noviembre de 2015)

Dependencias:
  • Gradle 2.2.1 o una versión posterior
  • Herramientas de compilación 21.1.1 o una versión posterior
Notas generales:
  • Se integró el complemento de vinculación de datos al complemento de Android para Gradle. Para habilitarlo, agrega el siguiente código a cada archivo build.gradle del proyecto que use el complemento.
  • android {
        dataBinding {
            enabled = true
        }
    }
            
    android {
        dataBinding {
            enabled = true
        }
    }
            
  • Se agregó una nueva API de transformación para permitir que complementos de terceros manipulen los archivos .class compilados antes de que se conviertan a archivos .dex. Esta API simplifica la inyección de manipulaciones de clase personalizada a la vez que ofrece más flexibilidad en relación con lo que se puede manipular. Para insertar una transformación en una compilación, crea una nueva clase mediante la implementación de una de las interfaces de Transform y regístrala con android.registerTransform(theTransform) o android.registerTransform(theTransform, dependencies). No es necesario conectar las tareas. Ten en cuenta lo siguiente sobre la API de transformación:
    • Una transformación se puede aplicar a una o más de las siguientes opciones: el proyecto actual, los subproyectos y las bibliotecas externas.
    • Una transformación se registra globalmente y se aplica así a todas las variantes.
    • El procesamiento de código interno, mediante la biblioteca de cobertura de código Java (JaCoCo), ProGuard y MultiDex, ahora usa la API de transformación. Sin embargo, Java Android Compiler Kit (Jack) no usa esta API: solo la usa la ruta de acceso de código javac/dx.
    • Gradle ejecuta las transformaciones en este orden: JaCoCo, complementos de terceros, ProGuard. El orden de ejecución de complementos de terceros coincide con el orden en el que los complementos de terceros agregan las transformaciones; los desarrolladores de complementos de terceros no pueden controlar el orden de ejecución de las transformaciones mediante una API.
  • Se dejó de usar el captador dex desde la clase ApplicationVariant. Ya no es posible acceder a la tarea Dex a través de la API de la variante porque ahora se logra mediante una transformación. Por el momento, no hay ningún reemplazo para controlar el proceso de dex.
  • Se corrigió la compatibilidad incremental con elementos.
  • Se mejoró la compatibilidad con MultiDex, que ahora está disponible para proyectos de prueba. Asimismo, las pruebas ahora tienen automáticamente la dependencia com.android.support:multidex-instrumentation.
  • Se agregó la capacidad de informar correctamente un error de compilación de Gradle y la causa subyacente del error cuando la compilación de Gradle invoca tareas asíncronas y hay un error en el proceso del trabajador.
  • Se agregó compatibilidad para la configuración de una interfaz binaria de la aplicación (ABI) en variantes que contienen varias ABI.
  • Se agregó compatibilidad para una lista delimitada por comas de números de serie de dispositivos para la variable de entorno ANDROID_SERIAL cuando se instalan o ejecutan pruebas.
  • Se corrigió un error de instalación en dispositivos que ejecutan Android 5.0 (nivel de API 20) y versiones posteriores cuando el nombre del APK contiene un espacio.
  • Se corrigieron varios errores relacionados con los resultados de Android Asset Packaging Tool (AAPT).
  • Se agregó compatibilidad con instrumentación incremental de JaCoCo para obtener compilaciones incrementales más rápidas. El complemento de Android para Gradle ahora invoca directamente el instrumentador de JaCoCo. Para forzar una versión más reciente del instrumentador de JaCoCo, debes agregarla como dependencia de la secuencia de comandos de la compilación.
  • Se corrigió la compatibilidad con JaCoCo, de modo que omite los archivos que no son clases.
  • Se agregó compatibilidad con elementos de diseño de vectores para generar archivos PNG en el tiempo de compilación a fin de admitir la retrocompatibilidad. El complemento de Android para Gradle genera archivos PNG para cada interfaz dibujable en vector que se encuentra en un directorio de recursos que no especifica una versión de API, o que especifica un atributo android:minSdkVersion de 20 o menos en el elemento <uses-sdk> del manifiesto de la app. Puedes definir las densidades de PNG mediante la propiedad generatedDensities en las secciones defaultConfig o productFlavor de un archivo build.gradle.
  • Se agregó el uso compartido del android.jar simulable, que el complemento genera solo una vez y lo usa para prueba de unidades. Varios módulos, como app y lib, ahora lo comparten. Borra $rootDir/build para volver a generarlo.
  • Se cambió el procesamiento de los recursos de Java para que se lleve a cabo antes de las tareas de ofuscación, en lugar de durante el empaquetado del APK. Este cambio permite que las tareas de ofuscación tengan la oportunidad de adaptar los recursos de Java según la ofuscación de paquetes.
  • Se corrigió un error con el código de la interfaz nativa de Java (JNI) en el complemento de la biblioteca experimental.
  • Se agregó la capacidad de configurar la versión de la plataforma de manera independiente del atributo android:compileSdkVersion en el complemento de la biblioteca experimental.