Complemento de Android para Gradle 8.4.0 (abril de 2024)

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

Compatibilidad

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

Versión mínima Versión predeterminada Notas
Gradle 8.6 8.6 Para obtener más información, consulta cómo actualizar Gradle.
SDK Build Tools 34.0.0 34.0.0 Instala o configura SDK Build Tools.
NDK N/A 26.1.10909125 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.

Las siguientes son funciones nuevas del complemento de Android para Gradle 8.4.

Versiones de parches

La siguiente es una lista de las versiones de parches de Android Studio Jellyfish y el complemento de Android para Gradle 8.4.

Android Studio Jellyfish | 2023.3.1, parche 2 y AGP 8.4.2 (junio de 2024)

Actualización de seguridad importante: Una vulnerabilidad de seguridad en el complemento de GitHub disponible en Android Studio Iguana | 2023.2.1 y versiones posteriores podría exponer tokens de acceso a terceros no autorizados.

La solución: Jetbrains resolvió el problema en los productos de la plataforma IntelliJ, y la solución ya está disponible en Android Studio Jellyfish | 2023.3.1, parche 2 (2023.3.1.20).

Si ya tienes una compilación de Android Studio en el canal estable, puedes obtener la actualización haciendo clic en Help > Check for Updates (o Android Studio > Check for Updates en macOS). De lo contrario, descarga la compilación estable más reciente.

Además, si usaste activamente la funcionalidad de solicitud de extracción de GitHub en el IDE, te recomendamos que revoques cualquier token de GitHub que use el complemento. Dado que el complemento puede usar la integración de OAuth o tokens de acceso personal (PAT), verifica ambos y revoca según sea necesario:

  • Para revocar el acceso a la integración de OAuth, ve a Applications > Authorized OAuth Apps y revoca el acceso al JetBrains IDE Integration token.
  • Para revocar el acceso a los PAT, ve a Personal access tokens y borra el token emitido para el complemento de GitHub. El nombre predeterminado del token es IntelliJ IDEA GitHub integration plugin, pero es posible que uses un nombre personalizado.

Después de revocar el acceso a los tokens, debes volver a configurar el complemento para que todas sus funciones, incluidas las operaciones de Git, vuelvan a funcionar.

Lamentamos cualquier inconveniente y recomendamos a todos los usuarios que realicen la actualización de inmediato para proteger su código y sus datos.

Esta actualización menor también incluye estas correcciones de errores.

Android Studio Jellyfish | 2023.3.1, parche 1 y AGP 8.4.1 (mayo de 2024)

Esta actualización menor incluye estas correcciones de errores.

Se reducen las clases de biblioteca

A partir del complemento de Android para Gradle 8.4, si se reduce un proyecto de biblioteca de Android, se publicarán las clases de programa reducidas para la publicación entre proyectos. Esto significa que, si una app depende de la versión reducida de los subproyectos de la biblioteca de Android, el APK incluirá clases de biblioteca de Android reducidas. Es posible que debas ajustar las reglas de conservación de la biblioteca en caso de que falten clases en el APK.

En caso de que compiles y publiques un AAR, los archivos JAR locales de los que depende tu biblioteca se incluirán sin reducir en el AAR, lo que significa que el reductor de código no se ejecutará en ellos.

Para volver al comportamiento anterior, configura android.disableMinifyLocalDependenciesForLibraries en el gradle.properties archivo y registra un error. Las versiones futuras del AGP quitarán esta marca.

Errores corregidos

Complemento de Android para Gradle 8.4.2

Errores corregidos
Complemento de Android para Gradle
AGP 8.4 parece interrumpir las descargas de GMD en CI.

Complemento de Android para Gradle 8.4.1

Errores corregidos
Complemento de Android para Gradle
Permite suprimir una advertencia sobre la baja de la compatibilidad de JDK 21 para segmentar Java 8.
Dexer (D8)
java.lang.VerifyError: El verificador rechaza la clase.
Error de conversión de formato R8 de la versión nueva después de la ofuscación.
Es posible que las compilaciones intermedias no tengan contenido sintético global completo para los stubs.

Complemento de Android para Gradle 8.4.0

Errores corregidos
Complemento de Android para Gradle
Mejorar el mensaje de error que explica por qué no se puede usar la opción "--release" para JavaCompile.
Inhabilitar el almacenamiento en caché de MergeSourceSetFolders con @DoNotCacheByDefault.
No se puede establecer la versión de JaCoCo en AGP 8.2.0.
Falta el elemento isDebuggable de DynamicFeatureBuildType.
Las clases de biblioteca reducidas no se publican correctamente para el consumo entre proyectos.
Proporciona API de Variant#sources que excluya los archivos generados.
Los modelos de AGP no contienen dependencias de proyectos de java-platform.
ExtractAarTransform crea classes.jar no reproducibles para aars que no tienen classes.jar.
Permitir la configuración de sourceInformation desde ComposeOptions.
No se puede encontrar el campo sdk_runtime en el mensaje android.bundle.DeviceSpec.
Compatibilidad con compileOnlyApi.
R8 falla en un módulo de biblioteca cuando el procesamiento de recursos está inhabilitado.
Agregar la habilidad de cambiar el nombre del artefacto durante la transformación.
La incorporación de resultados de tareas como srcDir de sourceSets.androidMain.resources no crea dependencias de tareas.
Faltan 0 iniciales en AndroidPluginVersion.toString().
Artifacts.add(FileSystemLocation) debería ser más restrictivo.
AGP 8.3.0-alpha11 produce un APK de lanzamiento que falla al inicio con android.content.res.Resources$NotFoundException.
La tarea de instalación del complemento de Android para Gradle 8.2.0 falla en proyectos que usan funciones dinámicas.
La compilación de AIDL falla con IndexOutOfBoundsException: El índice 0 está fuera de los límites para la longitud 0.
Problema de control de entradas incrementales de MergeJavaResourcesTask
AGP 8.3.0-alpha02 depende de bibliotecas con vulnerabilidades de seguridad conocidas.
La plantilla de actividad seleccionada requiere un proyecto con dependencias de androidx.*.
El Asistente de actualización del AGP quita erróneamente consumerProguardFiles del módulo.
El Asistente de actualización del AGP se carga de forma infinita.
SourceDirectories#static no debería depender de la tarea GenerateBuildConfig.
La vista previa de Compose no puede resolver clases de dependencias transitivas.
AGP 8.3 interrumpe la tarea zipApksFor.
Artefactos de AndroidX Desktop empaquetados en APK de Android.
Lint
GradleModelMocker del framework de prueba de lint no permite configurar la versión de la biblioteca.
Lint K2 UAST: UCallableReferenceExpression informa qualifierType incorrecto.
Falso positivo de lint con useK2Uast=true con funciones sobrecargadas.
[BuildTool/Lint] Propiedad del constructor ChecksSdkIntAtLeast.
Integración de lint
Lint no puede desambiguar una dependencia de KMP.