Complemento de Android para Gradle 9.2.0 (abril de 2026)

El complemento de Android para Gradle 9.2 es una versión secundaria que incluye una variedad de nuevas funciones y mejoras.

Compatibilidad

El nivel de API máximo que admite el complemento de Android para Gradle 9.2 es el nivel de API 36.1. A continuación, se incluye otra información sobre la compatibilidad:

Versión mínima Versión predeterminada Notas
Gradle 9.4.1 9.4.1 Para obtener más información, consulta cómo actualizar Gradle.
Herramientas de desarrollo del SDK 36.0.0 36.0.0 Instala o configura SDK Build Tools.
NDK N/A 28.2.13676358 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.

Informes de cobertura y pruebas unificados

AGP 9.2.0-alpha07 introduce tareas para generar paneles HTML que consolidan los resultados de las pruebas y la cobertura de varios tipos de pruebas (unidades y instrumentación), módulos y variantes de compilación, lo que proporciona una descripción general completa en un solo panel. Para obtener más información, consulta Genera informes de cobertura de código unificados y Visualiza informes de pruebas unificados.

Cambios en R8

Los siguientes cambios en R8 se incluyen en AGP 9.2.0.

Semántica -keepattributes más estricta para conservar las anotaciones invisibles en el tiempo de ejecución

Las anotaciones invisibles en el tiempo de ejecución no se pueden leer en ese momento. Por lo tanto, D8 quita incondicionalmente las anotaciones invisibles en el tiempo de ejecución, sin opción para cambiar esto.

Para la compatibilidad con ProGuard, R8 admite la salida de anotaciones invisibles en el tiempo de ejecución. Sin embargo, cuando se compila en DEX, las anotaciones invisibles en el tiempo de ejecución generalmente nunca deben conservarse. Sin embargo, es una práctica común incluir la regla conveniente -keepattributes *Annotation* (ya sea directa o indirectamente desde las reglas de conservación del consumidor) para que R8 conserve las anotaciones visibles en el tiempo de ejecución. Lamentablemente, esto también termina conservando las anotaciones invisibles en el tiempo de ejecución.

Para mitigar este problema y que coincida mejor con el comportamiento de D8, los patrones -keepattributes con comodines ya no coinciden con RuntimeInvisibleAnnotations, RuntimeInvisibleParameterAnnotations y RuntimeInvisibleTypeAnnotations. Como resultado, las anotaciones invisibles en el tiempo de ejecución solo se conservarán si el nombre del atributo se menciona de forma explícita sin comodines.

Ninguna de las siguientes reglas conservará las anotaciones invisibles en el tiempo de ejecución:

-keepattributes *
-keepattributes *Annotation*
-keepattributes *Invisible*

Para conservar las anotaciones invisibles en el tiempo de ejecución, usa la siguiente regla:

-keepattributes RuntimeInvisibleAnnotations,
                RuntimeInvisibleParameterAnnotations,
                RuntimeInvisibleTypeAnnotations

Compatibilidad con nombres negados en reglas de miembros

Se extendió el lenguaje de configuración para que ahora puedas hacer coincidir patrones de nombres de miembros negados.

Por ejemplo, para hacer coincidir todos los métodos que no terminan en "ForTesting", usa la siguiente regla:

-keepclassmembers class com.example.MyClass {
  *** !*ForTesting(...);
}

Los patrones de nombres de miembros también se pueden negar en la condición previa de las reglas -if. Si un patrón de nombres de miembros negado contiene comodines, no se puede hacer referencia a ellos en la regla consecuente -if.

Errores corregidos

Complemento de Android para Gradle 9.2.0-alpha04

Errores corregidos
Complemento de Android para Gradle
Se cambió el nombre del APK con el nuevo DSL de AGP.
Error al acceder a bootClasspath (pero no evaluarlo) IllegalStateException: targetCompatibility aún no está finalizado.

Complemento de Android para Gradle 9.2.0-alpha03

Errores corregidos
Complemento de Android para Gradle
Falla de JdkImageTransform con JDK 26.
Se codifica automáticamente minAgpVersion en los metadatos de AAR en AGP 10.0.
Lint
Ventana de contexto truncada en los informes de SARIF de Lint debido a un puntero de desplazamiento atascado en `SarifReporter.kt`.
El cliente de Gradle de Lint no tiene una función fundamental, lo que lo hace poco confiable en el mejor de los casos.
Integración de lint
Las tareas de Gradle de Lint ignoran la marca --quiet.

Complemento de Android para Gradle 9.2.0-alpha02

Errores corregidos
Complemento de Android para Gradle
AGP 9.0 No androidComponents.onVariant equivalente para applicationVariants.all.mergeAssetsProvider.
Los archivos `*.xml.flat` contienen rutas de acceso absolutas.
No se registró R8D8ThreadPoolBuildService.
Integración de lint
Android Lint falla con verificaciones de lint personalizadas compiladas en código de bytes de Java 21.

Complemento de Android para Gradle 9.2.0-alpha01

Errores corregidos
Complemento de Android para Gradle
Se advierte a los usuarios si tienen commonTest, pero olvidan withHostTestBuilder.
[fused lib - public] OkHttp incluye fuentes.
No se puede ejecutar androidDeviceTest con marcadores de posición del manifiesto en la biblioteca (AGP 9.0.0 con el complemento com.android.kotlin.multiplatform.library).
AGP debería advertir si el usuario tiene src/androidDeviceTest/java con Java inhabilitado.
Lint
Error tipográfico de Lint en el mensaje.