El complemento de Android para Gradle 9.3 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.3 es el nivel de API 37.
A continuación, se incluye otra información sobre la compatibilidad:
Tarea de Gradle del Analizador de configuración de R8 independiente
El complemento de Android para Gradle 9.3 introduce una tarea de Gradle dedicada para ejecutar el Analizador de configuración de R8 de forma aislada. El Analizador de configuración de R8 te ayuda a optimizar las reglas de reducción y ofuscación del código de tu app.
./gradlew :app:analyzeReleaseR8Config
La tarea :app:analyzeReleaseR8Config genera el informe sin completar la canalización de compilación del APK o del paquete. Esto proporciona un ciclo de retroalimentación más corto, lo que acelera la iteración del desarrollador cuando refina las reglas de conservación. Como alternativa, puedes generar el informe automáticamente ejecutando una compilación de lanzamiento de R8 (como assembleRelease o bundleRelease).
Para obtener más información, consulta Cómo ejecutar la tarea de Gradle independiente para generar el informe.
Errores corregidos
Complemento de Android para Gradle 9.3.3
| Errores corregidos |
| Complemento de Android para Gradle |
|
El nuevo DSL de optimización { enable = true } de AGP 9.3.0 no establece isMinifyEnabled en el objeto ApplicationVariant
|
|
| Dexer (D8) |
|
D8 9.2.14 es un 38% más lento que 8.13.6 en `mergeProjectDexDebug` con entrada y salida idénticas
|
|
| Reductor (R8) |
|
Modo de depuración de D8: ArrayIndexOutOfBoundsException: El índice -1 está fuera de los límites para la longitud 31, regresión entre R8 8.8.34 y 8.9.27
|
|
VerifyError: El esquema general extiende incorrectamente la región try-catch, lo que provoca que el registro no se inicialice
|
|
R8 escribe el archivo `.kotlin_module` con “:” en su nombre, lo que genera un nombre de archivo no válido en Windows
|
|
No determinismo de la compilación de R8: La entrada idéntica produce un archivo DEX o una asignación diferente (regresión de "Retain Assume instructions in LIR")
|
|
Asignación duplicada con R8 9.1
|
|
AGP produce de forma intermitente archivos dex que fallan en la verificación y hacen que la app falle al iniciarse
|
|
NullPointerException: No se puede invocar Position.getOutermostCaller() porque entryPosition es nulo
|
|
Alto consumo de memoria por regla
|
|
R8: VerifyError en Android 4.4
|
|
Complemento de Android para Gradle 9.3.2
| Errores corregidos |
| Lint |
|
Lint de AGP 9.3 falla en JDK 17: NoSuchMethodError: java.util.List.removeLast() en JavaDocParser incluido en intellij-core
|
|
Complemento de Android para Gradle 9.3.1
| Errores corregidos |
|
No se marcaron problemas públicos como solucionados en AGP 9.3.1
|
Complemento de Android para Gradle 9.3.0-rc02
| Errores corregidos |
|
No se marcaron problemas públicos como solucionados en AGP 9.3.0-rc02
|
Complemento de Android para Gradle 9.3.0-rc01
| Errores corregidos |
|
No se marcaron problemas públicos como solucionados en AGP 9.3.0-rc01
|
Complemento de Android para Gradle 9.3.0-alpha12
| Errores corregidos |
| Complemento de Android para Gradle |
|
Falla de compilación: La pérdida de identificadores de archivos en classes.jar en compile_library_classes_jar impide la recompilación en Windows hasta que se reinicia el IDE
|
|
| Lint |
|
Lint trata la biblioteca de Java importada como un proyecto de Android y, luego, ignora la versión del SDK de compilación
|
|
Complemento de Android para Gradle 9.3.0-alpha11
| Errores corregidos |
|
No se marcaron problemas públicos como solucionados en AGP 9.3.0-alpha11
|
Complemento de Android para Gradle 9.3.0-alpha10
| Errores corregidos |
|
No se marcaron problemas públicos como solucionados en AGP 9.3.0-alpha10
|
Complemento de Android para Gradle 9.3.0-alpha09
| Errores corregidos |
|
No se marcaron problemas públicos como solucionados en AGP 9.3.0-alpha09
|
Complemento de Android para Gradle 9.3.0-alpha08
| Errores corregidos |
|
No se marcaron problemas públicos como solucionados en AGP 9.3.0-alpha08
|
Complemento de Android para Gradle 9.3.0-alpha07
| Errores corregidos |
|
No se marcaron problemas públicos como solucionados en AGP 9.3.0-alpha07
|
Complemento de Android para Gradle 9.3.0-alpha06
| Errores corregidos |
| Complemento de Android para Gradle |
|
JavaDocGenerationTask debería usar trabajadores
|
|
Complemento de Android para Gradle 9.3.0-alpha05
| Errores corregidos |
| Reductor (R8) |
|
La asignación de ofuscación L8 no se incluye en el archivo mapping.txt de la app.
|
|
Complemento de Android para Gradle 9.3.0-alpha04
| Errores corregidos |
| Complemento de Android para Gradle |
|
El conjunto de orígenes keepRules de KMP se ignora sin it.consumerKeepRules.publish = true.
|
|
Complemento de Android para Gradle 9.3.0-alpha03
| Errores corregidos |
| Complemento de Android para Gradle |
|
java.lang.ClassNotFoundException: No se encontró la clase "com.android.tools.r8.RecordTag" después de actualizar Gradle a la versión 9.2.0
|
|
| Lint |
|
Error de lint cuando la reducción de recursos está inhabilitada
|
|
Complemento de Android para Gradle 9.3.0-alpha02
| Errores corregidos |
| Complemento de Android para Gradle |
|
Solicitud de función: Agrega compatibilidad con native_libs_merge_blame_file al complemento de Android para Gradle
|
|
| Lint |
|
Falta un acento grave en el mensaje de problema de AnnotationDetector
|
|
Error de lint cuando la reducción de recursos está inhabilitada
|
|
Complemento de Android para Gradle 9.3.0-alpha01
| Errores corregidos |
| Complemento de Android para Gradle |
|
Problema con los códigos de versión generados automáticamente
|
|
AGP: Migra de Project como notación de dependencia
|
|
| Lint |
|
Falso positivo de Lint con UseKtx
|
|
Complemento de Android para Gradle 9.3.0
| Errores corregidos |
|
No se marcaron problemas públicos como solucionados en AGP 9.3.0
|
Se actualizó el DSL de optimización para configurar las reglas de conservación de R8
Se introduce un DSL de optimización actualizado para configurar reglas de conservación para la optimización de R8, que se admite en pruebas de módulos de apps y módulos de bibliotecas. Para configurar la optimización con el DSL actualizado, usa el nuevo bloque optimization. En el caso de las apps, configura el bloque optimization dentro de un tipo de compilación (como release o debug) en la secuencia de comandos de compilación a nivel de la app. El DSL de optimización actualizado simplifica la configuración de R8:
- Activar la optimización habilita tanto la optimización del código como la reducción de recursos optimizada.
- Ya no es necesario especificar el archivo de reglas de conservación de Android predeterminado.
Ten en cuenta que la DSL heredada sigue siendo compatible.
Se introdujeron los conjuntos de fuentes para definir reglas de conservación
Coloca las reglas de conservación en el conjunto de orígenes src/<variant>/keepRules/, con el sufijo de archivo .keep. Los conjuntos de fuentes para las reglas de conservación son compatibles con el DSL de optimización actualizado y el DSL heredado. El uso de conjuntos de orígenes para las reglas de conservación se admite en los módulos de app, los módulos de biblioteca y como una forma de definir reglas de consumidor en los módulos de Kotlin Multiplatform (KMP).