Kotlin DSL es el valor predeterminado para la configuración de compilación.
Los proyectos nuevos ahora usan la DSL de Kotlin (build.gradle.kts) de forma predeterminada para la configuración de compilación. Esto ofrece una mejor experiencia de edición que la DSL de Groovy (build.gradle) con resaltado de sintaxis, autocompletado de código y navegación a declaraciones. Ten en cuenta que, si usas AGP 8.1 y el DSL de Kotlin para la configuración de compilación, debes usar Gradle 8.1 para obtener la mejor experiencia. Para obtener más información, consulta la guía de migración de DSL de Kotlin.
Compatibilidad automática de idioma de las apps
A partir de Android Studio Giraffe Canary 7 y AGP 8.1.0-alpha07, puedes configurar tu app para que admita automáticamente las preferencias de idioma de las apps. En función de los recursos de tu proyecto, el complemento de Android para Gradle genera el archivo LocaleConfig y le agrega una referencia en el archivo de manifiesto final, por lo que ya no tienes que hacerlo de forma manual. AGP usa los recursos de las carpetas res de los módulos de tu app y las dependencias de módulos de biblioteca para determinar las configuraciones regionales que se incluirán en el archivo LocaleConfig.
Ten en cuenta que la función automática de idioma de las apps admite apps que ejecutan Android 13 (nivel de API 33) o versiones posteriores. Para usar la función, debes establecer compileSdkVersion en 33 o un valor superior. Para configurar las preferencias de idioma de las apps en versiones anteriores de Android, debes usar las APIs y los selectores de idioma integrados en la app.
Para habilitar la compatibilidad automática de idioma de las apps, especifica una configuración regional predeterminada:
En la carpeta res del módulo de la app, crea un archivo nuevo llamado resources.properties.
En el archivo resources.properties, establece la configuración regional predeterminada con la etiqueta unqualifiedResLocale. Para formar los nombres de configuración regional, combina el código de idioma con la secuencia de comandos opcional y los códigos regionales, y separa cada uno con un guion:
Idioma: Usa el código ISO 639-1 de dos o tres letras.
Secuencia de comandos (opcional): Usa el código ISO 15924.
Región (opcional): Usa el código ISO 3166-1-alpha-2 de dos letras o el código UN_M.49 de tres dígitos.
Por ejemplo, si tu configuración regional predeterminada es Inglés (Estados Unidos):
unqualifiedResLocale=en-US
AGP agrega esta configuración regional predeterminada y todas las configuraciones regionales alternativas que especificaste, con directorios values-* en la carpeta res, al archivo LocaleConfig generado automáticamente.
La compatibilidad automática de idioma de las apps está desactivada de forma predeterminada. Para activar la función, usa la configuración generateLocaleConfig en el bloque androidResources {} del archivo build.gradle.kts a nivel del módulo (archivo build.gradle si usas Groovy):
Android Lint contiene código de bytes orientado a JVM 17
A partir de AGP 8.1.0-alpha04, Android Lint contiene código de bytes orientado a JVM 17. Si escribes verificaciones de lint personalizadas, debes compilar con JDK 17 o versiones posteriores, y especificar jvmTarget = '17' en las opciones del compilador de Kotlin.
Se trasladó la configuración de compresión de bibliotecas nativas a DSL
A partir de AGP 8.1.0-alpha10, recibirás una advertencia si no configuras la compresión de bibliotecas nativas con la DSL en lugar del manifiesto. En la siguiente guía, se explica cómo actualizar la configuración para usar la DSL. Para obtener ayuda para realizar estas actualizaciones, usa el Asistente de actualización del AGP (Tools > AGP Upgrade Assistant).
Para usar bibliotecas nativas sin comprimir, quita el atributo android::extractNativeLibs del manifiesto y agrega el siguiente código al archivo build.gradle.kts a nivel del módulo (archivo build.gradle si usas Groovy):
Si habilitas esta opción sin especificar ninguna configuración de firma, AGP usará la configuración de firma de depuración predeterminada cuando ejecutes una compilación perfilable o depurable. Esta marca está inhabilitada de forma predeterminada para alentar a los autores de compilaciones a declarar configuraciones de firma de perfiles específicas.
android.experimental.library.desugarAndroidTest
AGP 8.0
false
Esta marca permite que los compiladores de bibliotecas habiliten la expansión de sintaxis de la biblioteca principal para los APKs de prueba sin afectar el AAR producido, por ejemplo, a través de linting.
Planeamos admitir este comportamiento en la API de Variant.
Si está habilitado, los dispositivos administrados por Gradle permiten un tipo de dispositivo personalizado definido por el usuario que puede proporcionar un complemento. Esta marca debe estar habilitada si quieres usar el complemento de Firebase Test Lab.
android.lint.printStackTrace
AGP 8.0
false
Si está habilitado, Android lint imprime un seguimiento de pila si falla. Esta marca tiene las mismas capacidades que la variable de entorno LINT_PRINT_STACKTRACE.
Especifica la cantidad máxima de dispositivos administrados por Gradle (AVD) simultáneos que pueden estar activos en un momento determinado. Si el valor es 0 o negativo, no hay una cantidad máxima de dispositivos.
Regresión agp 8.1.0 en el nivel de API 21 - F/dex2oat ( 4176): art/compiler/handler/compiler_Driver.cc:1181] que indica que se produjo un error de verificación: !method->IsAbstract().
[AGP 8.1.0] La prueba ./gradlew falla y muestra el mensaje de que no se pudo encontrar el resultado del manifiesto si tanto splits.abi.isEnable como testOptions.unitTests.isIncludeAndroidResources son verdaderos.
[AGP 8.1.0] La prueba ./gradlew falla y muestra el mensaje de que no se pudo encontrar el resultado del manifiesto si tanto splits.abi.isEnable como testOptions.unitTests.isIncludeAndroidResources son verdaderos.
No ejecutes la tareas de conversión a dex en clases de subproyectos cuando ya se hayan convertido a través de transformaciones de artefactos
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.