El complemento de Android para Gradle 8.0.0 es una actualización importante que incluye una variedad de y funciones de Google Workspace.
Compatibilidad
Versión mínima | Versión predeterminada | Notas | |
---|---|---|---|
Gradle | 8.0 | 8.0 | Para obtener más información, consulta cómo actualizar Gradle. |
Herramientas de desarrollo del SDK | 30.0.3 | 30.0.3 | Instala o configura las herramientas de compilación del SDK. |
NDK | N/A | 25.1.8937393 | 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. |
Versiones de parches
La siguiente es una lista de las versiones de parche del complemento de Android para Gradle 8.0
Complemento de Android para Gradle 8.0.2 (mayo de 2023)
Para obtener una lista de los errores corregidos en AGP 8.0.2, consulta el Problemas cerrados de Android Studio 2022.2.1
Complemento de Android para Gradle 8.0.1 (mayo de 2023)
Esta actualización menor incluye las siguientes correcciones de errores:
Errores corregidos | |
---|---|
Error: "No VersionRequirement with the given id in the table" después de actualizar AGP de 7.2.2 a 7.4.0.
|
|
R8 NullPointerException en MarkTypeAsLive AGP 7.4.1.
|
|
[R8 4.0.53] Falla de la verificación de la clase estricta en Android 11.
|
Cambio rotundo: se requiere un espacio de nombres en la secuencia de comandos de compilación a nivel del módulo
Debes configurar el espacio de nombres en el archivo build.gradle.kts
de nivel de módulo, en lugar
que el archivo de manifiesto. Puedes comenzar a usar la propiedad de DSL de namespace
a partir de AGP 7.3. Para obtener más información, consulta
Configura un espacio de nombres.
Cuando migres al DSL del espacio de nombres, ten en cuenta los siguientes problemas:
- Las versiones anteriores de AGP infieren el espacio de nombres de prueba del espacio de nombres principal.
el ID de aplicación, de forma incorrecta en algunos casos. El Asistente de actualización del AGP bloquea el
actualizará si descubre que el espacio de nombres principal y el de prueba del proyecto están
la misma. Si se bloquea la actualización, deberás cambiar
testNamespace
de forma manual. y modificar tu código fuente según corresponda. - Después de que cambies el espacio de nombres de prueba, es posible que tu código se compile
pero las pruebas instrumentadas fallan
durante el tiempo de ejecución. Esto puede ocurrir si tu
El código fuente de las pruebas de instrumentación hace referencia a un recurso definido tanto en
androidTest
y fuentes de apps.
Para obtener más información, consulta error #191813691, comentario #19.
Cambios rotundos: valores predeterminados de la opción de compilación
A partir de AGP 8.0, los valores predeterminados para estas marcas cambiaron a mejorar el rendimiento de compilación. Si necesitas ayuda para ajustar tu código a fin de admitir algunas de estos cambios, usa el Asistente de actualización del AGP (Tools > AGP Upgrade Assistant). El Asistente de actualización te guiará actualizar tu código para que se adapte al comportamiento nuevo o configurar marcas para preservar el comportamiento anterior.
Marca | Nuevo valor predeterminado | Valor predeterminado anterior | Notas |
---|---|---|---|
android.defaults.buildfeatures.buildconfig |
false |
true |
AGP 8.0 no genera BuildConfig de forma predeterminada. Necesitas
para especificar esta opción con el DSL en los proyectos en los que la necesites. |
android.defaults.buildfeatures.aidl |
false |
true |
AGP 8.0 no habilita la compatibilidad con AIDL de forma predeterminada. Debes especificar esta opción con el DSL en los proyectos en los que la necesites. Esta marca es se planea quitar en AGP 9.0. |
android.defaults.buildfeatures.renderscript |
false |
true |
AGP 8.0 no habilita la compatibilidad con RenderScript de forma predeterminada. Debes y especificar esta opción con el DSL en los proyectos en los que la necesites. Esta se quitará la marca en AGP 9.0. |
android.nonFinalResIds |
true |
false |
AGP 8.0 genera clases R con campos no finales de la siguiente manera:
de forma predeterminada. |
android.nonTransitiveRClass |
true |
false |
AGP 8.0 genera clases R para los recursos definidos en
solo en el módulo actual. |
android.enableR8.fullMode |
true |
false |
AGP 8.0 habilita el modo completo de R8 de forma predeterminada. Para obtener más detalles, consulta Modo completo R8: |
Cambios rotundos: valores de opciones de compilación aplicados
A partir de AGP 8.0, ya no puedes cambiar los valores de estas marcas. Si
los especificas en el archivo gradle.properties
, se ignora el valor y AGP
imprime advertencias.
Marca | Valor aplicado | Notas |
---|---|---|
android.dependencyResolutionAtConfigurationTime.warn |
true |
AGP 8.0 emite una advertencia si detecta la resolución de configuración durante la fase de configuración porque afecta negativamente la configuración de Gradle veces. |
android.r8.failOnMissingClasses |
true |
AGP 8.0 fallan las compilaciones que usan R8 si faltan clases para
garantizar una mejor optimización de DEX. Para solucionar esto, necesitas agregar el
bibliotecas faltantes o -dontwarn reglas de conservación. Para obtener más detalles,
ver
Faltan advertencias de clases en el reductor R8. |
android.testConfig.useRelativePath |
true |
Cuando se admite el uso de recursos, elementos y manifiestos de Android en
unidades de prueba, AGP 8.0 genera un
archivo test_config.properties que contiene solo los
rutas de ataque. De esta manera, te aseguras de que las pruebas de unidades de Android siempre puedan usar el archivo Gradle.
en la caché de compilación. |
android.useNewJarCreator |
true |
AGP usa la biblioteca de Zipflinger cuando crea archivos JAR para mejorar el rendimiento de compilación. |
android.bundletool.includeRepositoriesInDependencyReport |
true |
Cuando se habilita la información de dependencia del SDK en AAB y APK, AGP 8.0 también agrega una lista de repositorios de proyectos a esta información. Para para obtener más información, consulta Información de la dependencia de Play Console. |
android.enableArtProfiles |
true |
Los perfiles de Baseline ahora se generan siempre. Consulta Perfiles de Baseline para obtener más detalles. |
android.enableNewResourceShrinker |
true |
Usa la nueva implementación del reductor de recursos de forma predeterminada. La nueva herramienta reductor de recursos incluye compatibilidad con funciones dinámicas. |
android.enableSourceSetPathsMap |
true |
Se usa para calcular asignaciones de rutas de recursos relativas, por lo que Gradle compila están actualizados con más frecuencia. |
android.cacheCompileLibResources |
true |
Los recursos de bibliotecas compilados ahora se pueden almacenar en caché de forma predeterminada porque Gradle
realiza un seguimiento de los archivos de recursos relacionados con la ubicación del proyecto. Requiere
Se habilitará android.enableSourceSetPathsMap . |
android.disableAutomaticComponentCreation |
true |
AGP 8.0 no crea SoftwareComponent de forma predeterminada. En cambio, AGP crea SoftwareComponents solo para variantes que están configuradas para publicarse con el DSL de publicación. |
Nueva marca estable para el perfil de ejecución
AGP incluye la nueva marca android.settings.executionProfile
. Usa esta marca para
anular el perfil de ejecución predeterminado del
SettingsExtension
Para obtener más información, consulta la documentación del complemento de configuración.
Para obtener una vista previa de las marcas experimentales, notas de la versión de la vista previa.
No se admite la asignación de propiedades diferidas de Kotlin
Si usas el DSL de Kotlin de Gradle para tus secuencias de comandos de compilación, ten en cuenta que Android
Studio y AGP 8.0 no admiten la asignación de propiedades experimentales con el
Operador =
. Para obtener más información sobre esta función, consulta el
notas de la versión
y
documentación.
Categorías de tareas de Build Analyzer
Comenzando por Android Studio Flamingo, Build Analyzer tiene una nueva vista predeterminada para tareas que afectan la duración de la compilación. Si tu proyecto usa AGP 8.0 o una versión posterior, en lugar de mostrar tareas de forma individual, Build Analyzer las agrupa categoría. Por ejemplo, tareas específicas para recursos de Android, Kotlin o Dexing se agrupan y, luego, se ordenan según la duración de la compilación. Esto hace que sea fácil sepa qué categoría tiene el mayor impacto en el tiempo de compilación. Cómo expandir cada categoría muestra una lista de las tareas correspondientes. Para mostrar tareas de forma individual, sin agrupar, usa el menú desplegable Agrupar por.
Nuevo complemento de configuración
AGP 8.0.0-alpha09 presenta el nuevo complemento de configuración. El complemento de configuración te permite puedes centralizar parámetros de configuración globales (parámetros de configuración que se aplican a todos los módulos) en un lugar para que no tengas que copiar y pegar la configuración en varios módulos. Además, puedes usar el complemento de configuración para crear la herramienta perfiles de ejecución o instrucciones diferentes para ejecutar una herramienta o bien cambiar entre ellas.
Para usar el complemento de configuración, aplica el complemento en el archivo settings.gradle
:
apply plugin 'com.android.settings'
Centraliza parámetros de configuración globales
Para establecer parámetros de configuración globales, usa el nuevo bloque android
de la
archivo settings.gradle
. Por ejemplo:
android {
compileSdk 31
minSdk 28
...
}
Perfiles de ejecución de herramientas
El complemento de configuración también te permite crear perfiles de ejecución para algunas herramientas. Los el perfil de ejecución determina cómo se ejecuta una herramienta. puedes seleccionar diferentes perfiles de ejecución según el entorno. En un perfil de ejecución, Puedes establecer argumentos de JVM para una herramienta y configurarla para que se ejecute en un proceso independiente. Actualmente, solo los Se admite la herramienta R8.
Crea perfiles de ejecución y establece el perfil de ejecución predeterminado en la
settings.gradle
, como se muestra en el siguiente ejemplo:
android {
execution {
profiles {
high {
r8 {
jvmOptions += ["-Xms2048m", "-Xmx8192m", "-XX:+HeapDumpOnOutOfMemoryError"]
runInSeparateProcess true
}
}
low {
r8 {
jvmOptions += ["-Xms256m", "-Xmx2048m", "-XX:+HeapDumpOnOutOfMemoryError"]
runInSeparateProcess true
}
}
ci {
r8.runInSeparateProcess false
}
}
defaultProfile "low"
}
}
Para anular el perfil predeterminado, selecciona otro con el comando
propiedad android.experimental.settings.executionProfile
en
Archivo gradle.properties
:
android.experimental.settings.executionProfile=high
También puedes configurar esta propiedad usando la línea de comandos, que te permite configurar
diferentes flujos de trabajo. Por ejemplo, si tienes un flujo de trabajo de integración continua
puedes usar la línea de comandos para cambiar el perfil de ejecución sin tener que
cambia el archivo settings.gradle
:
./gradlew assembleRelease \
-Pandroid.experimental.settings.executionProfile=ci
Se requiere JDK 17 para ejecutar AGP 8.0
Cuando usas el complemento de Android para Gradle 8.0 para compilar tu app, ahora se requiere JDK 17. para ejecutar Gradle. Android Studio Flamingo empaqueta JDK 17 y configura Gradle para lo usan de forma predeterminada, lo que significa que la mayoría de los usuarios de Android Studio no necesitan hacer cualquier cambio de configuración en sus proyectos.
Si necesitas configurar la versión de JDK manualmente, haz lo siguiente: que usa AGP dentro de Android Studio, debes usar JDK 17 o una versión posterior.
Cuando uses AGP independiente de Android Studio, actualiza la versión de JDK de la siguiente manera:
Configura el JAVA_HOME
variable de entorno
o -Dorg.gradle.java.home
opción de línea de comandos
al directorio de instalación de JDK 17.