Complemento de Android para Gradle 3.1.0 (marzo de 2018)
Esta versión del complemento para Android requiere lo siguiente:
Versión mínima | Versión predeterminada | Notas | |
---|---|---|---|
Gradle | 4.4 | 4.4 | Para obtener más información, consulta cómo actualizar Gradle. |
Herramientas de desarrollo del SDK | 27.0.3 | 27.0.3 | Instala o configura las herramientas de compilación del SDK. Ten en cuenta que ya no es necesario especificar una versión para las herramientas de compilación mediante la propiedad android.buildToolsVersion. El complemento usa la versión mínima requerida de forma predeterminada. |
Compilador de DEX nuevo, D8
De forma predeterminada, Android Studio ahora usa un compilador de DEX nuevo denominado D8. La compilación de DEX es el proceso de transformar el código de bytes .class
en .dex
para Android Runtime (o Dalvik, para las versiones anteriores de Android). En comparación con el compilador anterior, denominado DX, D8 compila más rápido y genera archivos DEX más pequeños. Además, mantiene el mismo rendimiento de tiempo de ejecución de la app o lo mejora.
D8 no debería modificar el flujo de trabajo diario de desarrollo de apps. Sin embargo, si tienes problemas relacionados con el compilador nuevo, informa el error. Puedes inhabilitar D8 de forma temporal y usar DX incluyendo lo siguiente en el archivo gradle.properties
del proyecto:
android.enableD8=false
En el caso de los proyectos que usan funciones del lenguaje Java 8, la expansión incremental de sintaxis de accesos directos está habilitada de forma predeterminada. Para inhabilitarla, especifica lo siguiente en el archivo gradle.properties
de tu proyecto:
android.enableIncrementalDesugaring=false.
Usuarios de la vista preliminar: Si ya estás usando una versión preliminar de D8, ten en cuenta que ahora compila las bibliotecas incluidas en las herramientas de compilación del SDK, no en JDK. Por lo tanto, si accedes a APIs que existen en JDK, pero no en las bibliotecas de compilación de SDK, se mostrará un error de compilación.
Cambios de comportamiento
-
Cuando compilas varios APKs orientados a una ABI diferente, el complemento ya no genera APKs para las siguientes ABI de forma predeterminada:
mips
,mips64
yarmeabi
.Para compilar un APK que se oriente a esas ABI, usa NDK r16b o una versión anterior, y especifica las ABI en el archivo
build.gradle
, como se muestra a continuación:splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
-
La caché de compilación del complemento para Android ahora desaloja las entradas de caché que tienen más de 30 días.
-
Cuando pasas
"auto"
aresConfig
, ya no se seleccionan automáticamente los recursos de strings para empaquetar en el APK. Si continuas usando"auto"
, el complemento empaqueta todos los recursos de strings que proporcionan la app y sus dependencias. Por lo tanto, en su lugar, debes especificar cada configuración regional que quieras que el complemento empaquete en el APK. -
Debido a que los módulos locales no pueden depender del APK de prueba de tu app, agregar dependencias a tus pruebas instrumentadas mediante la configuración de
androidTestApi
, en lugar deandroidTestImplementation
, provoca que Gradle emita la siguiente advertencia:WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
Correcciones
- Se corrige el error por el que Android Studio no reconoce correctamente las dependencias en compilaciones compuestas.
- Se corrige el error que consiste en mostrar un error de sincronización de proyecto cuando se carga el complemento para Android varias veces en una única compilación (por ejemplo, cuando varios subproyectos incluyen el complemento para Android en la ruta de la clase buildscript).