O Plug-in do Android para Gradle 8.1.0 é uma versão principal que inclui vários novos recursos e melhorias.
Compatibilidade
Versão mínima | Versão padrão | Observações | |
---|---|---|---|
Gradle | 8.0 | 8.0 | Para saber mais, consulte Como atualizar o Gradle. |
Ferramentas de build do SDK | 33.0.1 | 33.0.1 | Instale ou configure as Ferramentas de build do SDK. |
NDK | N/A | 25.1.8937393 | Instale ou configure uma versão diferente do NDK. |
JDK | 17 | 17 | Para saber mais, consulte Como configurar a versão do JDK. |
A DSL do Kotlin é o padrão para configuração do build
Novos projetos agora usam a DSL do Kotlin (build.gradle.kts
) por padrão para configuração
do build. Isso oferece uma experiência de edição melhor do que a DSL do Groovy
(build.gradle
), com destaque de sintaxe, preenchimento de código e navegação para
declarações. Se você estiver usando o AGP 8.1 e a DSL do Kotlin para configuração
do build, use o Gradle 8.1 para ter a melhor experiência. Para saber mais,
consulte o guia de migração de DSL do Kotlin.
Suporte automático ao idioma por app
No Android Studio Giraffe Canary 7 e no AGP 8.1.0-alpha07 e versões mais recentes, é possível
configurar seu app para oferecer suporte a seleção de idioma
por app automaticamente. Com base nos
recursos do projeto, o Plug-in do Android para Gradle gera o arquivo LocaleConfig
e adiciona uma referência a ele no arquivo de manifesto final. Assim, não é mais necessário
fazer isso manualmente. O AGP usa os recursos nas pastas res
dos módulos do app
e qualquer dependência de módulos de biblioteca para determinar as localidades que serão incluídas no
arquivo LocaleConfig
.
O recurso automático de idioma por app tem suporte de apps com o Android
13 (nível 33 da API) ou mais recente. Para usar o recurso, defina
compileSdkVersion
como 33 ou maior. Para configurar a seleção de idioma por app
em versões anteriores do Android, ainda é necessário
usar as APIs e os seletores de idioma no app.
Para ativar o suporte automático ao idioma por app, especifique uma localidade padrão:
- Na pasta
res
do módulo do app, crie um novo arquivo chamadoresources.properties
. No arquivo
resources.properties
, defina a localidade padrão com o rótulounqualifiedResLocale
. Para formar os nomes de localidade, combine o código do idioma com o script opcional e os códigos de região, separando cada um com um traço:- Idioma: use o código ISO 639-1 de duas ou três letras.
- Script (opcional): use o código ISO 15924 (link em inglês).
- Região (opcional): use o código ISO 3166-1-alpha-2 de duas letras ou o código UN_M.49 (link em inglês) de três dígitos.
Por exemplo, se a localidade padrão for inglês dos EUA:
unqualifiedResLocale=en-US
O AGP adiciona a localidade padrão e qualquer outra
localidade alternativa
que você tenha especificado (usando diretórios values-*
na pasta res
) ao
arquivo LocaleConfig
gerado automaticamente.
O suporte automático ao idioma por app fica desativado por padrão. Para ativar o recurso,
use a configuração generateLocaleConfig
no bloco androidResources {}
do
arquivo build.gradle.kts
do módulo (arquivo build.gradle
, se você estiver usando
Groovy):
Kotlin
android { androidResources { generateLocaleConfig = true } }
Groovy
android { androidResources { generateLocaleConfig true } }
O Android Lint contém bytecode direcionado à JVM 17
A partir do AGP 8.1.0-alpha04, o Android Lint contém bytecode direcionado à JVM
17. Se você escrever verificações de lint personalizadas, precisará compilar com o JDK 17 ou versão mais recente
e especificar jvmTarget = '17'
nas opções do compilador Kotlin.
Para saber mais sobre a ferramenta lint, consulte Melhorar seu código com verificações de lint.
A configuração de compactação da biblioteca nativa foi movida para DSL
A partir do AGP 8.1.0-alpha10, você vai receber um aviso se não configurar a compactação da biblioteca nativa usando a DSL em vez do manifesto. A orientação a seguir explica como atualizar sua configuração para usar a DSL. Para receber ajuda com essas atualizações, use o Assistente de upgrade do AGP (Tools > AGP Upgrade Assistant).
Para usar bibliotecas nativas descompactadas, remova o atributo android::extractNativeLibs
do manifesto e adicione o seguinte código ao arquivo
build.gradle.kts
no módulo (arquivo build.gradle
, se você estiver usando o Groovy):
Kotlin
android { packagingOptions { jniLibs { useLegacyPackaging = false } } }
Groovy
android { packagingOptions { jniLibs { useLegacyPackaging false } } }
Sinalizações de build experimentais
Estas são flags experimentais para configurar seu build disponível no AGP 8.1.
Sinalização | Adicionado em | Valor padrão | Observações |
---|---|---|---|
android.experimental.useDefaultDebugSigningConfigForProfileableBuildtypes |
AGP 8.0 | false |
Ativar essa opção sem configurações de assinatura especificadas faz com que o AGP use a configuração padrão de assinatura de depuração ao executar um build com perfil ou depurável. Essa sinalização está desativada por padrão para incentivar os autores da compilação a declarar configurações de assinatura de criação de perfil específicas. |
android.experimental.library.desugarAndroidTest |
AGP 8.0 | false |
Essa flag permite que os builders de biblioteca ativem a simplificação da biblioteca principal para APKs de teste sem afetar o AAR produzido, por exemplo, por meio de inspeção. Planejamos oferecer compatibilidade com esse comportamento na API Variant. |
android.experimental.testOptions.managedDevices.customDevice |
AGP 8.0 | false |
Se ativados, os dispositivos gerenciados pelo Gradle permitem um tipo de dispositivo personalizado definido pelo usuário que pode ser fornecido por um plug-in. Essa sinalização precisará estar ativada se você quiser usar o plug-in do Firebase Test Lab. |
android.lint.printStackTrace |
AGP 8.0 | false |
Se ativado, o lint do Android vai mostrar um stack trace em caso de falha. Essa sinalização
tem os mesmos recursos da variável de ambiente
LINT_PRINT_STACKTRACE . |
android.experimental.testOptions.managedDevices.maxConcurrentDevices |
AGP 8.0 | Nenhum | Especifica o número máximo de dispositivos gerenciados pelo Gradle (AVDs) simultâneos a serem ativos em qualquer momento. Se o valor for 0 ou negativo, não haverá um número máximo de dispositivos. |
android.experimental.testOptions.installApkTimeout |
AGP 8.0 | Nenhum | A duração do tempo limite em segundos para instalar um APK. Se o valor for 0 ou negativo, ele será definido como um valor padrão pelo UTP. |