Complemento de Android para Gradle 8.4.0 (abril de 2024)

El complemento de Android para Gradle 8.4.0 es una actualizació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. Aquí tienes más 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.
Herramientas de desarrollo del SDK 34.0.0 34.0.0 Instala o configura las herramientas de compilación del SDK.
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 parche 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.

Solución: Jetbrains resolvió el problema en los productos de la plataforma IntelliJ, y la solución ahora 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 de forma activa la funcionalidad de solicitudes de extracción de GitHub en el IDE, te recomendamos que revoques los tokens de GitHub que usa el complemento. Dado que el complemento puede usar la integración de OAuth o los tokens de acceso personal (PAT), verifica ambos y revoca los que sean necesarios:

  • Para revocar el acceso de la integración de OAuth, ve a Aplicaciones > Apps de OAuth autorizadas y revoca el acceso del token de Integración de IDE de JetBrains.
  • Para revocar el acceso de los PAT, ve a Tokens de acceso personal 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 de los tokens, debes volver a configurar el complemento para que todas sus funciones, incluidas las operaciones de Git, vuelvan a funcionar.

Lamentamos los inconvenientes y solicitamos 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.

Las clases de la biblioteca se reducen

A partir del complemento de Android para Gradle 8.4, si un proyecto de biblioteca de Android se reduce, se publicarán clases de programas 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 retención de bibliotecas en caso de que falten clases en el APK.

En caso de que estés compilando y publicando 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, establece android.disableMinifyLocalDependenciesForLibraries en el archivo gradle.properties y informa un error. Las versiones futuras de AGP quitarán esta marca.

Errores corregidos

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 manejo 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 de forma incorrecta 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 la dependencia transitiva.
AGP 8.3 interrumpe la tarea zipApksFor.
Artefactos de AndroidX para computadoras empaquetados en un APK de Android
Lint
GradleModelMocker del framework de prueba de lint no permite configurar la versión de la biblioteca.
UAST de lint K2: UCallableReferenceExpression informa un qualifierType incorrecto.
Se genera un 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.

Complemento de Android para Gradle 8.4.1

Errores corregidos
Complemento de Android para Gradle
Se permite suprimir una advertencia sobre la baja de compatibilidad de JDK 21 para la segmentación de Java 8.
Dexer (D8)
java.lang.VerifyError: El verificador rechaza la clase.
Error de conversión de formato R8 de nueva versión 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.2

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