Complemento de Android para Gradle 3.2.0 (septiembre de 2018)

Esta versión del complemento para Android requiere lo siguiente:

3.2.1 (octubre de 2018)

Con esta actualización, ya no es necesario especificar la versión de las herramientas de compilación de SDK. El complemento de Android para Gradle ahora usa la versión 28.0.3 de forma predeterminada.

Funciones nuevas

  • Compatibilidad con compilación de Android App Bundles: El paquete de aplicación es un formato de carga nuevo que incluye todos los recursos y códigos compilados de la app, a la vez que se aplaza la generación del APK y el proceso de firma en Google Play Store. Ya no es necesario compilar, firmar y administrar varios APK, y los usuarios obtienen descargas de menor tamaño optimizadas para su dispositivo. Si quieres obtener más información, consulta Acerca de Android App Bundles.

  • Compatibilidad con velocidades de compilación incremental mejoradas cuando se usan los procesadores de anotaciones: La DSL de AnnotationProcessorOptions ahora amplía CommandLineArgumentProvider, que te permite a ti o al autor del procesador de anotaciones anotar los argumentos del procesador usando anotaciones de tipo de propiedad de compilación incremental. El uso de esas anotaciones mejora la corrección y el rendimiento de las compilaciones limpias incrementales y almacenadas en caché. Para obtener más información, consulta Cómo pasar argumentos a procesadores de anotaciones.

  • Herramienta de migración para AndroidX: Cuando se usa el complemento de Android para Gradle 3.2.0 con Android 3.2 y versiones posteriores, puedes migrar las dependencias de Maven y las locales del proyecto para usar las nuevas bibliotecas de AndroidX. A tal fin, selecciona Refactor > Migrate to AndroidX en la barra de menú. El uso de esta herramienta de migración también configura las siguientes marcas como true en el archivo gradle.properties:

    • android.useAndroidX: Cuando se establece esta marca en true, el complemento para Android usa la biblioteca de AndroidX apropiada en lugar de una biblioteca de compatibilidad. Si no se especifica la marca, el complemento la configura como false de forma predeterminada.

    • android.enableJetifier: Cuando se establece esta marca en true, el complemento para Android reescribe sus objetos binarios a fin de migrar automáticamente las bibliotecas de terceros existentes para usar las dependencias de AndroidX. Si no se especifica la marca, el complemento la configura como false de forma predeterminada. Puedes configurarla en true solo si android.useAndroidX también está configurado en true; de lo contrario, se mostrará un error de compilación.

      Para obtener más información, consulta la descripción general de AndroidX.

  • Reductor de código nuevo, R8: R8 es una herramienta nueva de reducción y ofuscación de código que reemplaza a ProGuard. Puedes comenzar a usar la versión preliminar de R8 incluyendo lo siguiente en el archivo gradle.properties del proyecto:

            android.enableR8 = true
            
            android.enableR8 = true
            

Cambios en el comportamiento

  • La eliminación de accesos directos con D8 ahora está habilitada de forma predeterminada.

  • AAPT2 ahora está en el repositorio de Maven de Google. Para usar AAPT2, asegúrate de tener la dependencia google() en el archivo build.gradle, como se muestra a continuación:

              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()
                }
              
  • El multidex nativo ahora está habilitado de forma predeterminada. Las versiones anteriores de Android Studio habilitaban multidex nativo cuando se implementaba la versión de depuración de una app en un dispositivo con el nivel de API 21 de Android o una versión posterior. Independientemente de si haces una implementación en un dispositivo o compilas un APK para actualización, el complemento de Android para Gradle habilita multidex nativo en todos los módulos con minSdkVersion=21 o una versión posterior.

  • El complemento ahora aplica una versión mínima de los complementos protobuf (0.8.6), Kotlin (1.2.50) y Crashlytics (1.25.4).

  • El complemento de módulo de funciones, com.android.feature, ahora aplica el uso de solo letras, dígitos y guiones bajos cuando se especifica un nombre de módulo. Por ejemplo, si el nombre del módulo incluye guiones, se mostrará un error. Este comportamiento coincide con el del complemento de funciones dinámicas.

Correcciones de errores

  • Ahora se puede almacenar JavaCompile en la memoria caché en proyectos con vinculación de datos (Error #69243050).
  • Se mejoró la elusión de compilación para módulos de biblioteca con vinculación de datos (Error #77539932).
  • Ahora puedes volver a habilitar la configuración on demand si la inhabilitaste en versiones anteriores debido a errores de compilación impredecibles (Error #77910727).