Notas de la versión del complemento de Android para Gradle 8.7

El repositorio de JCenter se convirtió en solo lectura el 31 de marzo de 2021. Para obtener más información, consulta la Actualización del servicio de JCenter.

El sistema de compilación de Android Studio se basa en Gradle, y el complemento de Android para Gradle incorpora varias funciones específicas para compilar apps para Android. Si bien el complemento de Android para Gradle (AGP) suele actualizarse en el paso de bloqueo con Android Studio, el complemento y el resto del sistema Gradle se pueden ejecutar independientemente de Android Studio y se pueden actualizar por separado.

En esta página, se explica cómo mantener tus herramientas de Gradle actualizadas y cuál es el contenido de las actualizaciones recientes. Para conocer las notas de las versiones anteriores del complemento de Android para Gradle, consulta las notas de las versiones anteriores.

Para ver qué se corrigió en esta versión del complemento de Android para Gradle, consulta los errores cerrados.

Si quieres obtener un resumen general sobre los próximos cambios rotundos, consulta el plan del complemento de Android para Gradle.

A fin de obtener detalles para configurar tus compilaciones de Android con Gradle, consulta las siguientes páginas:

Si quieres obtener más información sobre el sistema de compilación de Gradle, consulta la Guía del usuario de Gradle.

Cómo actualizar el complemento de Android para Gradle

Si actualizas Android Studio, es posible que recibas una solicitud para actualizar automáticamente el complemento de Android para Gradle a la versión más reciente disponible. Puedes aceptar la actualización o especificar manualmente una versión, según los requisitos de compilación del proyecto.

Puedes especificar la versión del complemento en el menú File > Project Structure > Project en Android Studio o en el archivo build.gradle.kts de nivel superior. La versión del complemento se aplica a todos los módulos integrados en ese proyecto de Android Studio. En el siguiente ejemplo, se establece el complemento en la versión 8.7.0 del archivo build.gradle.kts:

Kotlin

plugins {
    id("com.android.application") version "8.7.0" apply false
    id("com.android.library") version "8.7.0" apply false
    id("org.jetbrains.kotlin.android") version "2.0.20" apply false
}

Groovy

plugins {
    id 'com.android.application' version '8.7.0' apply false
    id 'com.android.library' version '8.7.0' apply false
    id 'org.jetbrains.kotlin.android' version '2.0.20' apply false
}

Precaución: No debes usar dependencias dinámicas en los números de versión, como 'com.android.tools.build:gradle:8.7.+'. El uso de esta función puede causar actualizaciones de versión inesperadas y dificultades para resolver diferencias entre versiones.

Si no se descargó la versión especificada del complemento, Gradle la descargará la próxima vez que compiles el proyecto o hagas clic en Files > Sync Project with Gradle Files en la barra de menú de Android Studio.

Cómo actualizar Gradle

Si actualizas Android Studio, es posible que recibas una solicitud para actualizar también Gradle a la versión más reciente disponible. Puedes aceptar la actualización o especificar manualmente una versión, según los requisitos de compilación del proyecto.

En la siguiente tabla, se muestra qué versión de Gradle se requiere para cada versión del complemento de Android para Gradle. Si quieres obtener el mejor rendimiento, deberías usar la versión más reciente de Gradle y del complemento.

Versión del complementoVersión mínima de Gradle requerida
8.78.9
8.68.7
8.58.7
8.48.6
8.38.4
8.28.2
8.18.0
8.08.0
7.47.5

Versiones anteriores

Versión del complementoVersión requerida de Gradle
7.37.4
7.27.3.3
7.17.2
7.07.0
4.2.0+6.7.1
4.1.0+6.5+
4.0.0+6.1.1+
3.6.0 - 3.6.45.6.4+
3.5.0 - 3.5.45.4.1+
3.4.0 - 3.4.35.1.1+
3.3.0 - 3.3.34.10.1+
3.2.0 - 3.2.14.6+
3.1.0+4.4+
3.0.0+4.1+
2.3.0+3.3+
2.1.3 - 2.2.32.14.1 - 3.5
2.0.0 - 2.1.22.10 - 2.13
1.5.02.2.1 - 2.13
1.2.0 - 1.3.12.2.1 - 2.9
1.0.0 - 1.1.32.2.1 - 2.3

Puedes especificar la versión de Gradle en el menú File > Project Structure > Project en Android Studio o actualizar tu versión de Gradle con la línea de comandos. La forma recomendada es usar la herramienta de línea de comandos Gradle Wrapper, que actualiza las secuencias de comandos gradlew. En el siguiente ejemplo, se configura la versión de Gradle en 8.7 con Gradle Wrapper. Ten en cuenta que debes ejecutar este comando dos veces para actualizar tanto Gradle como el wrapper de Gradle (si quieres obtener más información, consulta el artículo para actualizar el wrapper de Gradle).

gradle wrapper --gradle-version 8.7

Sin embargo, en algunos casos, esto puede fallar; por ejemplo, si acabas de actualizar AGP y ya no es compatible con la versión actual de Gradle. En este caso, debes editar la referencia a la distribución de Gradle en el archivo gradle/wrapper/gradle-wrapper.properties. En el siguiente ejemplo, se configura la versión de Gradle en 8.7 en el archivo gradle-wrapper.properties.

...
distributionUrl = https\://services.gradle.org/distributions/gradle-8.7-bin.zip
...

Compatibilidad del complemento de Android para Gradle y Android Studio

El sistema de compilación de Android Studio se basa en Gradle, y el complemento de Android para Gradle (AGP) incorpora varias funciones específicas para compilar apps para Android. En la siguiente tabla, se muestra qué versión de AGP se requiere para cada versión de Android Studio.

Versión Android Studio Versión requerida del AGP
Ladybug | 2024.2.1 3.2-8.7
Actualización de funciones de Koala | 2024.1.2 3.2-8.6
Koala | 2024.1.1 3.2-8.5
Jellyfish | 2023.3.1 3.2-8.4
Iguana | 2023.2.1 3.2-8.3
Hedgehog | 2023.1.1 3.2-8.2
Giraffe | 2022.3.1 3.2-8.1
Flamingo | 2022.2.1 3.2-8.0

Versiones anteriores

Versión Android Studio Versión requerida del AGP
Electric Eel | 2022.1.1 3.2-7.4
Dolphin | 2021.3.1 3.2-7.3
Chipmunk | 2021.2.1 3.2-7.2
Bumblebee | 2021.1.1 3.2-7.1
Arctic Fox | 2020.3.1 3.1-7.0

Para conocer las novedades del complemento de Android para Gradle, consulta las notas de la versión del complemento de Android para Gradle.

Versiones mínimas de herramientas para el nivel de API de Android

Hay versiones mínimas de Android Studio y AGP que admiten un nivel de API específico. El uso de versiones anteriores de Android Studio o AGP que las requeridas por targetSdk o compileSdk de tu proyecto podría generar problemas inesperados. Recomendamos usar la versión preliminar más reciente de Android Studio y AGP para trabajar en proyectos orientados a versiones preliminares del SO Android. Puedes instalar versiones preliminares de Android Studio junto con una versión estable.

Estas son las versiones mínimas de Android Studio y AGP:

Nivel de API Versión mínima de Android Studio Versión mínima del AGP
35 Actualización de funciones de Koala | 2024.2.1 8.6.0
34 Hedgehog | 2023.1.1 8.1.1
33 Flamingo | 2022.2.1 7.2

Cambios en el control de versiones (noviembre de 2020)

Actualizaremos la numeración de versiones del complemento de Android para Gradle (AGP) a fin de que coincida mejor con la herramienta de compilación subyacente de Gradle.

Estos son algunos de los cambios más importantes:

  • AGP ahora usará el control de versiones semántico y los cambios rotundos se incluirán en las versiones principales.

  • Se lanzará una versión principal de AGP por año, que estará alineada con la actualización más importante de Gradle.

  • La versión posterior a AGP 4.2 será 7.0 y requerirá una actualización a Gradle 7.x. Cada lanzamiento importante de AGP requerirá una actualización importante de versión de la herramienta subyacente de Gradle.

  • Las API quedarán obsoletas aproximadamente con un año de anticipación y, al mismo tiempo, se pondrá a disposición una función de reemplazo. Aproximadamente un año después, se quitarán las API obsoletas en la próxima actualización importante.

Compatibilidad

El nivel de API máximo que admite el complemento de Android para Gradle 8.6 es el nivel de API 34. Aquí tienes más información sobre la compatibilidad:

Versión mínima Versión predeterminada Notas
"Gradle" 8.9 8.9 "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 27.0.12077973 "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".

Cambio de comportamiento de lint

A partir del complemento de Android para Gradle 8.7.0-alpha08, si hay un LintError cuando se ejecuta lint con Gradle, la tarea de análisis de lint arroja una excepción. Este cambio evita que los errores poco frecuentes se almacenen en caché en la caché de compilación.

Lamentablemente, este cambio interrumpe las compilaciones de proyectos con instancias LintError genuinas en sus archivos de modelo de referencia de lint. El mensaje de error contiene información sobre qué verificaciones de lint están causando el problema. En algunos casos, actualizar la dependencia de la biblioteca correspondiente podría resolver el problema. De lo contrario, puedes inhabilitar la verificación de lint problemática hasta que el autor de la biblioteca la corrija.

Errores corregidos

Complemento de Android para Gradle 8.7.0

Errores corregidos
Complemento de Android para Gradle
AGP debe indicar que admite el nivel de API 35 que está a punto de lanzarse.
AGP 8.5: Se ejecutan muchas más tareas "mergeDebugResources", lo que ralentiza las compilaciones.
Se estableció ndk 27 como el NDK predeterminado en AGP.
AGP debe indicar que admite el nivel de API 35 que está a punto de lanzarse.
AGP debe indicar que admite el nivel de API 35 que está a punto de lanzarse.
Se produjo un error al ejecutar lint de Android con NoSuchFileException.
BuildType#initWith copia el bloque de procesamiento posterior, pero no se aplica la configuración de Proguard.
No se puede combinar para las etiquetas foregroundServiceType
Se produjo un error al ejecutar lint de Android con NoSuchFileException.
Lint
Lint debe verificar si hay objetos no válidos que se usan como ViewGroups.
Falta el atributo "android:host" para los URIs con un host nulo.
Incompatibilidad de KtAnalysisSessionProvider con las verificaciones de lint que se introdujo en 8.7.0-alpha04
Se generaba un "falso positivo" de WrongConstant cuando se usaba PackageManager.ResolveInfoFlags.of con Kotlin.

Complemento de Android para Gradle 8.7.1

Errores corregidos
Complemento de Android para Gradle
Los documentos de agp tienen muchos TBD
Lint
AGP 8.6.1: Regresión: Falla de lint de WrongConstant cuando se usa [Int].toLong() dentro de un @LongDef en Kotlin
Se produce un error de lint "Se debe especificar al menos un host" cuando se configura el esquema de filtro de intents de http o https.

Complemento de Android para Gradle 8.7.2

Errores corregidos
Lint
AGP 8.7.0: Falso positivo de RestrictedApi en lint en NavOptionsBuilder.popUpTo
Reductor (R8)
[R8 8.6.27] La implementación del método se reemplazó por "throw null".
Los archivos de Proguard predeterminados de Android muestran una advertencia cuando se usan con la versión actual de R8.
MissingStartupProfileItemsDiagnostic hace que el cliente de Gradle falle con un error de falta de memoria si el mensaje es demasiado grande.