O Plug-in do Android para Gradle 8.0.0 é uma versão principal que inclui várias novas 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 | 30.0.3 | 30.0.3 | 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. |
Versões de patch
Esta é uma lista das versões de patch do Plug-in do Android para Gradle. 8.0.
Plug-in do Android para Gradle 8.0.2 (maio de 2023)
Para conferir uma lista de bugs corrigidos no AGP 8.0.2, consulte a Problemas fechados do Android Studio 2022.2.1.
Plug-in do Android para Gradle 8.0.1 (maio de 2023)
Esta atualização secundária inclui as seguintes correções de bugs:
Problemas corrigidos | |
---|---|
Erro: "No VersionRequirement with the given id in the table" depois de fazer upgrade do AGP 7.2.2 para 7.4.0
|
|
R8 NullPointerException em markTypeAsLive AGP 7.4.1
|
|
[R8 4.0.53] Falha de verificação de classe rígida no Android 11
|
Alteração interruptiva: namespace obrigatório no script de build do módulo
É necessário definir o namespace no arquivo build.gradle.kts
do módulo, em vez
do arquivo de manifesto. É possível começar a usar a propriedade DSL namespace
a partir da AGP 7.3. Para saber mais, consulte
Definir um namespace.
Ao migrar para a DSL de namespace, esteja ciente dos seguintes problemas:
- As versões anteriores do AGP inferem o namespace de teste do namespace principal.
ID do aplicativo, incorreto em alguns casos. O assistente de upgrade do AGP bloqueia o
upgrade se ele detectar que o namespace principal e de teste do projeto são
iguais. Se o upgrade for bloqueado, você vai precisar mudar
testNamespace
manualmente e modificar o código-fonte de acordo. - Depois de mudar o namespace do teste, é possível que o código seja compilado.
mas os testes instrumentados
falham no momento da execução. Isso pode acontecer se
o código-fonte de um teste instrumentado referencia um recurso definido nas
androidTest
e origens de apps.
Para mais informações, consulte o comentário 19 do problema 191813691.
Alterações interruptivas: valores padrão da opção de build
A partir do AGP 8.0, os valores padrão dessas flags foram alterados para a melhorar o desempenho do build. Para obter ajuda para ajustar seu código para oferecer suporte a alguns dos essas mudanças, use o Assistente de upgrade do AGP (Tools > AGP Upgrade Assistant). O Assistente de upgrade vai orientar você atualizando o código para acomodar o novo comportamento ou definindo sinalizações para preservar o comportamento anterior.
Sinalização | Novo valor padrão | Valor padrão anterior | Observações |
---|---|---|---|
android.defaults.buildfeatures.buildconfig |
false |
true |
O AGP 8.0 não gera BuildConfig por padrão. É necessário
especificar essa opção usando o DSL nos projetos em que você precisa. |
android.defaults.buildfeatures.aidl |
false |
true |
Por padrão, o AGP 8.0 não ativa o suporte à AIDL. É necessário especificar essa opção usando o DSL nos projetos em que você precisa. Essa sinalização é será removida no AGP 9.0. |
android.defaults.buildfeatures.renderscript |
false |
true |
O AGP 8.0 não ativa o suporte ao RenderScript por padrão. Você precisa especificar essa opção usando a DSL nos projetos em que ela for necessária. Isso flag será removida no AGP 9.0. |
android.nonFinalResIds |
true |
false |
O AGP 8.0 gera classes R com campos não finais ao
padrão. |
android.nonTransitiveRClass |
true |
false |
O AGP 8.0 gera classes R para recursos definidos apenas no
módulo atual. |
android.enableR8.fullMode |
true |
false |
O AGP 8.0 ativa o modo completo do R8 por padrão. Para mais detalhes, consulte Modo R8 completo. |
Mudanças importantes: valores de opção de build obrigatórios
A partir do AGP 8.0, não é mais possível mudar os valores dessas flags. Se
você especificar no arquivo gradle.properties
, o valor será ignorado, e o AGP
mostra avisos.
Sinalização | Valor aplicado | Observações |
---|---|---|
android.dependencyResolutionAtConfigurationTime.warn |
true |
O AGP 8.0 emite um aviso se detectar a resolução de configuração durante a fase de configuração, porque isso afeta negativamente os tempos de configuração do Gradle. |
android.r8.failOnMissingClasses |
true |
O AGP 8.0 falha em builds que usam o R8 se houver classes ausentes para
e garantir uma melhor otimização do DEX. Para resolver isso, adicione as
bibliotecas ausentes ou as regras de manutenção -dontwarn . Para mais detalhes,
consulte
Avisos de classes ausentes no redutor R8. |
android.testConfig.useRelativePath |
true |
Quando o suporte ao uso de recursos, assets e manifestos do Android em
testes de unidade está ativado, o AGP 8.0 gera um
arquivo test_config.properties que contém apenas caminhos
relativos. Isso garante que os testes de unidade do Android sempre possam usar a API Gradle
cache de build. |
android.useNewJarCreator |
true |
O AGP usa a biblioteca Zipflinger ao criar arquivos JAR para melhorar o desempenho do build. |
android.bundletool.includeRepositoriesInDependencyReport |
true |
Quando a adição de informações de dependência do SDK em AABs e APKs está ativada, O AGP 8.0 também adiciona uma lista de repositórios de projetos a essas informações. Para saber mais, consulte Informações de dependência do Play Console. |
android.enableArtProfiles |
true |
Os perfis de referência agora são sempre gerados. Consulte Perfis de referência para saber mais. |
android.enableNewResourceShrinker |
true |
Usar a nova implementação do redutor de recursos por padrão. O novo compressor de recursos inclui suporte a recursos dinâmicos. |
android.enableSourceSetPathsMap |
true |
Usado para calcular mapeamentos de caminho de recurso relativo. O Gradle cria são atualizados com mais frequência. |
android.cacheCompileLibResources |
true |
Os recursos da biblioteca compilada agora podem ser armazenados em cache por padrão porque o Gradle
rastreia arquivos de recursos em relação ao local do projeto. Requer
android.enableSourceSetPathsMap ativado. |
android.disableAutomaticComponentCreation |
true |
O AGP 8.0 não cria SoftwareComponent por padrão. Em vez disso, o AGP cria SoftwareComponents apenas para variantes configuradas para serem publicadas usando a DSL de publicação. |
Nova flag estável para perfil de execução
O AGP inclui a nova flag android.settings.executionProfile
. Use essa flag para
substituir o perfil de execução padrão do
SettingsExtension
.
Para saber mais, consulte a documentação do plug-in de configurações.
Para visualizar as sinalizações experimentais, consulte a notas da versão de pré-lançamento.
Atribuição de propriedade lenta do Kotlin sem suporte
Se você estiver usando a DSL do Kotlin do Gradle para seus scripts de build, observe que o Android
Studio e o AGP 8.0 não oferecem suporte à atribuição experimental de propriedades usando o
operador =
. Para mais informações sobre esse recurso, consulte as
notas da versão
e a
documentação.
Categorias de tarefas do Build Analyzer
No Android Studio Flamingo, o Build Analyzer tem uma nova visualização padrão para tarefas que afetam a duração do build. Se o projeto usar o AGP 8.0 ou mais recente, em vez de mostrar as tarefas individualmente, o Build Analyzer as agrupa por categoria. Por exemplo, tarefas específicas para recursos do Android, Kotlin ou Dexing. são agrupados e classificados por duração. Isso facilita saber qual categoria tem mais impacto no tempo de compilação. Expanda cada categoria exibe uma lista das tarefas correspondentes. Para mostrar as tarefas individualmente, sem agrupar, use o menu suspenso Agrupar por.
Novo plug-in de configurações
O AGP 8.0.0-alpha09 apresenta o novo plug-in de configurações. Com o plug-in de configurações, você centraliza configurações globais, ou seja, configurações que se aplicam a todos os módulos, em para não precisar copiar e colar as configurações em vários módulos. Além disso, é possível usar o plug-in de configurações para criar perfis de execução de ferramentas ou diferentes instruções sobre como executar uma ferramenta e alternar entre elas.
Para usar o plug-in de configurações, aplique-o no arquivo settings.gradle
:
apply plugin 'com.android.settings'
Centralizar as configurações globais
Para definir configurações globais, use o novo bloco android
na classe
arquivo settings.gradle
. Veja um exemplo:
android {
compileSdk 31
minSdk 28
...
}
Perfis de execução de ferramentas
O plug-in de configurações também permite criar perfis de execução para algumas ferramentas. Um o perfil de execução determina como uma ferramenta é executada; é possível selecionar diferentes de execução compatíveis com o ambiente. Em um perfil de execução, é possível definir argumentos da JVM para uma ferramenta e configurá-la para ser executada em um processo separado. No momento, só há suporte para a ferramenta R8.
Crie perfis de execução e defina o perfil de execução padrão no
settings.gradle
, conforme mostrado no exemplo a seguir:
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 substituir o perfil padrão, selecione um perfil diferente usando a
propriedade android.experimental.settings.executionProfile
no
arquivo gradle.properties
:
android.experimental.settings.executionProfile=high
Você também pode definir essa propriedade usando a linha de comando, que permite configurar
fluxos de trabalho diferentes. Por exemplo, se você tem um fluxo de trabalho de integração contínua
é possível usar a linha de comando para alterar o perfil de execução sem precisar
mude o arquivo settings.gradle
:
./gradlew assembleRelease \
-Pandroid.experimental.settings.executionProfile=ci
O JDK 17 é necessário para executar o AGP 8.0.
Ao usar o Plug-in do Android para Gradle 8.0 para criar seu app, o JDK 17 agora é necessário para executar o Gradle. O Android Studio Flamingo inclui o JDK 17 e configura o Gradle para por padrão, o que significa que a maioria dos usuários do Android Studio não precisa fazer todas as mudanças de configuração nos projetos.
Se você precisar definir manualmente a versão do JDK, usado pelo AGP no Android Studio, é necessário usar o JDK 17 ou mais recente.
Ao usar o AGP independente do Android Studio, faça upgrade da versão do JDK.
a definição de JAVA_HOME
variável de ambiente
ou o -Dorg.gradle.java.home
opção de linha de comando
no diretório de instalação do JDK 17.
Problemas corrigidos
Plug-in do Android para Gradle 8.0.0
Problemas corrigidos | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Plug-in do Android para Gradle |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dexer (D8) |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lint |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Integração com o Lint |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Redutor (R8) |
|
Plug-in do Android para Gradle 8.0.1
Problemas corrigidos | ||||
---|---|---|---|---|
Redutor (R8) |
|
Plug-in do Android para Gradle 8.0.2
Problemas corrigidos | |||||
---|---|---|---|---|---|
Redutor (R8) |
|