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 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.
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.

La corrección: Jetbrains resolvió el problema en los productos de la plataforma IntelliJ, y la correcció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 Ayuda > Buscar actualizaciones (o Android Studio > Buscar actualizaciones 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 use el complemento. Dado que el complemento puede usar la integración de OAuth o tokens de acceso personal (PAT), verifica ambos y revoca el acceso según sea necesario:

  • Para revocar el acceso a la integración de OAuth, ve a Aplicaciones > Apps autorizadas de OAuth y revoca el acceso al 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 a 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 les 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 la biblioteca

A partir del complemento de Android para Gradle 8.4, si se minimiza un proyecto de biblioteca de Android, se publicarán las clases del 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á las clases reducidas de la biblioteca de Android. 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 dependa 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 registra 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 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 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 una dependencia transitiva
AGP 8.3 interrumpe la tarea zipApksFor
Artefactos de AndroidX Desktop empaquetados en el 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 un qualifierType incorrecto
Falso positivo de lint con useK2Uast=true y 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
Permite suprimir una advertencia sobre la baja de compatibilidad de JDK 21 con la segmentación para Java 8
Dexer (D8)
java.lang.VerifyError: El verificador rechaza la clase.
Se produjo un error de conversión de formato de la nueva versión de R8 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
Al parecer, AGP 8.4 interrumpe las descargas de GMD en CI.