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 de 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 Cómo generar informes unificados de cobertura de código y Cómo ver informes de pruebas unificados.

Cambios en R8

Los siguientes cambios de R8 se incluyen en AGP 9.2.0.

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

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

Para garantizar la compatibilidad con ProGuard, R8 admite la generación 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 se deben conservar. 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 hace que se mantengan las anotaciones invisibles del 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 ni 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 mantener las anotaciones invisibles en el tiempo de ejecución, usa la siguiente regla:

-keepattributes RuntimeInvisibleAnnotations,
                RuntimeInvisibleParameterAnnotations,
                RuntimeInvisibleTypeAnnotations

Se agregó 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 de -if. Si un patrón de nombre de miembro negado contiene comodines, no se puede hacer referencia a esos comodines en la regla consecuente -if.

Errores corregidos

Complemento de Android para Gradle 9.2.0-alpha04

Errores corregidos
Complemento de Android para Gradle
Cómo cambiar el nombre del APK con el nuevo DSL del AGP
Se produjo un error al acceder a bootClasspath (pero no al 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 del 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 hay un equivalente de androidComponents.onVariant 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
[Biblioteca fusionada - pública] 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)
El AGP debería mostrar una advertencia si el usuario tiene src/androidDeviceTest/java con Java inhabilitado.
Lint
Lint de error de escritura en el mensaje