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

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 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.9.0 del archivo build.gradle.kts:

plugins {
    id("com.android.application") version "8.9.0" apply false
    id("com.android.library") version "8.9.0" apply false
    id("org.jetbrains.kotlin.android") version "2.1.10" apply false
}
plugins {
    id 'com.android.application' version '8.9.0' apply false
    id 'com.android.library' version '8.9.0' apply false
    id 'org.jetbrains.kotlin.android' version '2.1.10' apply false
}

Precaución: No debes usar dependencias dinámicas en los números de versión, como 'com.android.tools.build:gradle:8.9.+'. 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.98.11.1
8.88.10.2
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
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.9 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.9

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.9 en el archivo gradle-wrapper.properties.

...
distributionUrl = https\://services.gradle.org/distributions/gradle-8.9-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
Meerkat | 2024.3.1 3.2-8.9
Actualización de funciones de Ladybug | 2024.2.2 3.2-8.8
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
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
Vista previa de Baklava Meerkat | 2024.3.1 8.9.0
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.9 es el nivel de API 35. Aquí tienes más información sobre la compatibilidad:

Versión mínima Versión predeterminada Notas
Gradle 8.11.1 8.11.1 Para obtener más información, consulta cómo actualizar Gradle.
Herramientas de desarrollo del SDK 35.0.0 35.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.

Errores corregidos

Complemento de Android para Gradle 8.9.0

Errores corregidos
Complemento de Android para Gradle
Proporciona un mensaje de error práctico cuando la tarea de configuración de GMD falla por falta de espacio en el disco
El complemento com.android.settings no reconoce targetSdk.
Error poco útil: "No se especificó compileSdkVersion". Agrega la siguiente línea a build.gradle".
Falta la opción "Clean build" en el menú Build.
Tal vez permita que la compatibilidad integrada de Kotlin de AGP agregue automáticamente la dependencia de stdlib de Kotlin.
Se actualizó shouldConfigureKotlinPlatformAttribute para controlar la compatibilidad integrada con Kotlin.
Se proporciona la sintaxis de Kotlin Gradle en el mensaje de error de "checkTestedAppObfuscationRelease".
Se podría mejorar el error de la biblioteca fusionada cuando la dependencia no se resuelve.
Las propiedades del sistema de gradle.properties no se pasan a los trabajadores de Gradle de R8 en procesos separados.
Haz que BuiltArtifact.outputFile sea el tipo de archivo
No proporcionar un espacio de nombres en la biblioteca fusionada no proporciona un mensaje de error correcto.
Las opciones de lint en AGP 7.1.0-alpha08 no permiten stdout.
Complemento de Android para Gradle: Las variantes deben exponer los nombres de los conjuntos de orígenes
La caché de configuración es inestable con la configuración de la variable de entorno TERM.
AndroidComponentsExtension.addSourceSetConfigurations falla cuando se habilitan las estadísticas.
Secuencia de comandos de inicialización "C:\Users\mypc\AppData\Local\Temp\ijresolvers2.gradle", línea 162
AndroidComponentsExtension.addSourceSetConfigurations falla cuando se habilitan las estadísticas.
Dexer (D8)
java.lang.VerifyError: El verificador rechazó la clase: [0x430] copy1 v2<-v264 type=Undefined cat=3
Lint
Lint falla con las verificaciones de Gradle de lint
Lint falla con InstantiationException sin un mensaje de excepción en el seguimiento de pila de lint.
La comprobación de lint de falso positivo android.permission.SCHEDULE_EXACT_ALARM solo se otorga a las apps del sistema.
La verificación de StringFormatInvalid se debe aplicar al método stringResource de Compose.
La anotación RequiresFeature no funciona para los archivos Kotlin.
kotlin android.os.Handler removeCallbacks Runnable
WrongConstant lint en la definición en lugar del uso de la constante con mayúsculas
El lint de WrongConstant aparece dos veces.
Excepción de tiempo de ejecución inferior al nivel de API 26 con una API de Java nio no compatible (sin errores de lint)
Lint evita el uso de RequiresApi incluso en el método de ayuda privado en la prueba.
El modo K2 arroja una advertencia de RestrictedApi cuando se usa .hasRoute(Route::class) en Android Studio.
Lint sugiere reemplazar @RequiresExtension en la prueba por @SdkSuppress, que no admite extensiones de SDK.
Lint informa incorrectamente un diseño anidado innecesario cuando se usa un FrameLayout con fitSystemWindows para unir un RelativeLayout secundario que requiere un padding personalizado.
La regla de lint de CoarseFineLocation no tiene en cuenta un atributo maxSdkVersion.
AppLinkSplitToWebAndCustom es UnknownIssue en lint 8.7.3.
Falla de StringEscapeDetector de la comprobación de lint en "\\ "
Se mostraba una advertencia de lint incorrecta para la anotación "@Parcelize" en las interfaces selladas.
AS 2024.3.1.4 se bloquea de forma intermitente cuando se editan textos de Kotlin.
Integración de lint
lintVitalRelease no se ejecuta automáticamente cuando se compila el paquete de aplicación.
Reductor (R8)
Proguard de Gson no funciona correctamente después de actualizar a AGP 8.8.
java.lang.VerifyError: El verificador rechaza la clase.
Leanback falla cuando se reduce con R8 incluido en AGP 8.10.0-alpha04.