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 37.0. 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 pruebas y cobertura 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 del tiempo de ejecución

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

Para la compatibilidad con ProGuard, R8 admite la salida de anotaciones invisibles del tiempo de ejecución. Sin embargo, cuando se compila en DEX, las anotaciones invisibles del tiempo de ejecución 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 del tiempo de ejecución. Desafortunadamente, esto también termina conservando 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 y RuntimeInvisibleTypeAnnotations. Como resultado, las anotaciones invisibles del tiempo de ejecución solo se conservarán si el nombre del atributo se menciona explícitamente sin comodines.

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

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

Para conservar las anotaciones invisibles del 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 esos comodines en la regla consecuente -if.

Errores corregidos

Complemento de Android para Gradle 9.2.1

Errores corregidos
Complemento de Android para Gradle
java.lang.ClassNotFoundException: Didn't find class "com.android.tools.r8.RecordTag" after upgrading gradle to 9.2.0

Complemento de Android para Gradle 9.2.0

Errores corregidos
Complemento de Android para Gradle
Warn users if they have commonTest but forget withHostTestBuilder
[fused lib - public] OkHttp includes sources
Cannot run androidDeviceTest with manifest placeholders in library (AGP 9.0.0 with com.android.kotlin.multiplatform.library plugin)
AGP should warn if user has src/androidDeviceTest/java with java disabled
AGP 9.0 No androidComponents.onVariant equivalent for applicationVariants.all.mergeAssetsProvider
`*.xml.flat` files contain absolute file paths
R8D8ThreadPoolBuildService not registered
JdkImageTransform failure with JDK 26
Automatically encode minAgpVersion in the AAR metadata in AGP 10.0
Renaming APK using new AGP DSL
Error when accessing (but not evaluating) bootClasspath IllegalStateException: targetCompatibility is not yet finalized
keepRules sourceset not working for libraries
Embed CC compatibility declaration in AGP
Update Kotlin Gradle plugin dependency to 2.3.10
Allow higher compileSdk for tests than main
Lint
Lint typo in message
Truncated context window in Lint SARIF reports due to stuck offset pointer in `SarifReporter.kt`
Lint Gradle client is missing a critical feature making it unreliable at best
Lint error when resource shrinking is disabled
AGP 9 Lint reports WrongConstant when using nested IntDef constants
Lint error when resource shrinking is disabled
Integración de lint
Android Lint fails with custom lint checks compiled to Java 21 bytecode
Lint Gradle tasks ignore --quiet flag
Reductor (R8)
Targeting Java 11 seems to break d8