Complemento de Android para Gradle 8.3.0 (febrero de 2024)

El complemento de Android para Gradle 8.3.0 es una actualización importante que incluye una variedad de nuevas funciones y mejoras.

Compatibilidad

El nivel de API máximo que admite el complemento de Android para Gradle 8.3 es el nivel de API 34. Esta es otra información sobre la compatibilidad:

Versión mínima Versión predeterminada Notas
Gradle 8.4 8.4 Para obtener más información, consulta cómo actualizar Gradle.
Herramientas de desarrollo del SDK 34.0.0 34.0.0 Instala o configura las herramientas de compilación del SDK.
NDK N/A 25.1.8937393 Instala o configura una versión diferente del NDK.
JDK 17 17 Para obtener más información, consulta cómo configurar la versión de JDK.

Las siguientes son funciones nuevas del complemento de Android para Gradle 8.3.

Versiones de parches

La siguiente es una lista de las versiones de parche de Android Studio Iguana y el complemento de Android para Gradle 8.3.

Android Studio Iguana | 2023.2.1 Parche 2 y AGP 8.3.2 (abril de 2024)

Esta actualización menor incluye estas correcciones de errores.

Android Studio Iguana | 2023.2.1 Parche 1 y AGP 8.3.1 (marzo de 2024)

Esta actualización menor incluye estas correcciones de errores.

Compatibilidad con catálogos de versiones de Gradle

Android Studio admite catálogos de versiones de Gradle basados en TOML, una función que te permite administrar dependencias en una ubicación central y compartir dependencias entre módulos o proyectos. Android Studio ahora facilita la configuración de catálogos de versiones a través de sugerencias del editor y la integración con el diálogo Project Structure. Obtén información para configurar los catálogos de versiones de Gradle o migrar tu compilación a catálogos de versiones.

Cómo completar el código y navegar

Android Studio ofrece la función de completar el código cuando editas un catálogo de versiones en el formato de archivo TOML o agregas una dependencia de un catálogo de versiones a un archivo de compilación. Para completar el código, presiona Ctrl + Espacio (Comando + Espacio en macOS). Además, puedes navegar rápidamente desde una referencia de dependencia en el archivo build.gradle de tu app hasta donde está declarada en el catálogo de versiones presionando Ctrl + b (Comando + b en macOS).

Finalización del código cuando se agrega una dependencia

Integración con el diálogo Project Structure

Si tu proyecto usa un catálogo de versiones definido en el formato de archivo TOML, puedes editar las variables que definiste allí a través de la vista Variables del diálogo Project Structure (File > Project Structure > Variables) en Android Studio. Para cada catálogo de versiones, hay un menú desplegable que enumera las variables de ese catálogo. Para editar una variable, haz clic en su valor y reemplázala. Cuando guardas estos cambios, el archivo TOML se actualiza en consecuencia.

Variables de un catálogo de versiones en el diálogo Project Structure

También puedes actualizar las dependencias en la vista Dependencies del diálogo Project Structure (File > Project Structure > Dependencies). Para actualizar versiones con el diálogo Project Structure, navega hasta el módulo y la dependencia que quieras editar. Luego, actualiza el campo Requested Version. Cuando guardas estos cambios, el archivo TOML se actualiza en consecuencia. Ten en cuenta que, si la versión de la dependencia se definió con una variable, actualizar la versión directamente de esta manera reemplaza la variable por un valor codificado. Además, ten en cuenta que quitar una dependencia de un archivo de compilación, sin importar si usas el diálogo Project Structure o no, no se quita del catálogo de versiones.

Dependencias de un catálogo de versiones en el diálogo Project Structure

Problemas conocidos y limitaciones

A continuación, se muestran algunos problemas o limitaciones conocidos de la compatibilidad de los catálogos de versiones de Gradle en Android Studio.

  • Se produjo un error al destacar las declaraciones de alias del complemento en los archivos de secuencia de comandos de Kotlin: cuando agregas una declaración de complemento con el formato alias(libs.plugins.example), el editor agrega un subrayado rojo debajo de la parte libs. Este es un problema conocido en Gradle 8.0 y versiones anteriores, y se resolverá en una versión futura de Gradle.

  • Android Studio solo es compatible con catálogos de versiones en formato TOML: actualmente, la compatibilidad con la finalización del código, la navegación y el diálogo de estructura del proyecto de Android Studio solo está disponible para los catálogos de versiones definidos en el formato de archivo TOML. Sin embargo, aún puedes agregar un catálogo de versiones directamente en el archivo settings.gradle y usar sus dependencias en tu proyecto.

  • No se admite la navegación en los archivos de compilación KTS: la navegación a una definición de dependencia en un catálogo de versiones con Control + clic (Comando + clic en macOS) aún no es compatible con los archivos de compilación escritos con la secuencia de comandos de Kotlin.

  • Firebase Assistant agrega dependencias directamente en las secuencias de comandos de compilación: Firebase Assistant las agrega directamente a las secuencias de comandos de compilación, en lugar de hacerlo a través de catálogos de versiones.

  • No se admite la funcionalidad "Find usages": todavía no se admite la búsqueda de usos de una variable de catálogo de versiones en otros archivos de compilación, ya sea que el archivo de compilación esté en KTS o Groovy. Es decir, si usas Control + clic (Comando + clic en macOS) en una definición de variable de un catálogo de versiones, no se generarán los archivos de compilación en los que se usa la variable.

  • En el diálogo Project Structure de Android Studio, se muestran varios archivos de catálogo que se encuentran en la carpeta raíz gradle, pero no los catálogos de una compilación compuesta. Por ejemplo, si tienes dos archivos de catálogo, uno para tu app y otro para una compilación compuesta, el diálogo Project Structure solo muestra el archivo del catálogo de la app. Puedes usar una compilación compuesta, pero debes editar su archivo TOML directamente.

Estadísticas adicionales de SDK: Problemas relacionados con las políticas

Android Studio muestra advertencias de lint en los archivos build.gradle.kts y build.gradle, y en el diálogo Project Structure para los SDKs públicos que tienen incumplimientos de la política de Play en el Índice SDK de Google Play. Debes actualizar todas las dependencias que incumplan las políticas de Play, ya que estos podrían impedir que publiques contenido en Google Play Console en el futuro. Las advertencias de incumplimiento de política complementan las advertencias de versiones desactualizadas que muestra Android Studio.

Compatibilidad con la versión de compileSdk de Android Studio

Android Studio muestra una advertencia si tu proyecto usa un compileSdk que no es compatible con la versión actual de Android Studio. Si está disponible, también sugiere cambiar a una versión de Android Studio que admita el compileSdk que usa tu proyecto. Ten en cuenta que es posible que, para actualizar Android Studio, también debas actualizar el AGP. AGP también muestra una advertencia en la ventana de herramientas Build si el compileSdk que usa tu proyecto no es compatible con la versión actual de AGP.

Cambios en el comportamiento de lint

A partir del complemento de Android para Gradle 8.3.0-alpha02, cuando se ejecuta lint en un módulo, se ejecutan tareas de análisis de lint independientes para los componentes principales y de prueba del módulo. El motivo de este cambio es mejorar el rendimiento. Para volver al comportamiento anterior, configura android.experimental.lint.analysisPerComponent=false en tu archivo gradle.properties.

Reducción precisa de recursos activada de forma predeterminada

La reducción precisa de recursos, que quita las entradas no utilizadas del archivo resources.arsc y elimina los archivos de recursos que no se usan, está activada de forma predeterminada. Cuando se habilita esta reducción, se reduce tu tabla de recursos y solo se incluyen en el APK las entradas de la carpeta res a las que se hace referencia.

Para desactivar la reducción precisa de recursos, configura android.enableNewResourceShrinker.preciseShrinking como false en el archivo gradle.properties de tu proyecto.