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 |
|
||
Complemento de Android para Gradle 9.2.0-alpha03
| Errores corregidos | |||
|---|---|---|---|
| Complemento de Android para Gradle |
|
||
| Lint |
|
||
| Integración de lint |
|
||
Complemento de Android para Gradle 9.2.0-alpha02
| Errores corregidos | ||||
|---|---|---|---|---|
| Complemento de Android para Gradle |
|
|||
| Integración de lint |
|
|||
Complemento de Android para Gradle 9.2.0-alpha01
| Errores corregidos | |||||
|---|---|---|---|---|---|
| Complemento de Android para Gradle |
|
||||
| Lint |
|
||||