O Plug-in do Android para Gradle 9.3 é uma versão secundária que inclui vários novos
recursos e melhorias.
Compatibilidade
O nível máximo da API compatível com o Plug-in do Android para Gradle 9.3 é o 37.
Outras informações sobre compatibilidade:
Tarefa independente do Gradle do R8 Configuration Analyzer
O plug-in do Android para Gradle 9.3 apresenta uma tarefa dedicada do Gradle para executar o R8
Configuration Analyzer isoladamente. O analisador de configuração do R8 ajuda a otimizar as regras de redução de código e ofuscação do app.
./gradlew :app:analyzeReleaseR8Config
A tarefa :app:analyzeReleaseR8Config gera o relatório sem concluir
o pipeline de compilação do APK ou do pacote. Isso oferece um ciclo de feedback mais curto, o que acelera a iteração do desenvolvedor ao refinar as regras de retenção. Como alternativa, gere o relatório automaticamente executando um build de lançamento do R8 (como
assembleRelease ou bundleRelease).
Para mais informações, consulte Executar a tarefa independente do Gradle para gerar
relatórios.
Problemas corrigidos
Plug-in do Android para Gradle 9.3.3
| Problemas corrigidos |
| Plug-in do Android para Gradle |
|
A nova DSL de otimização { enable = true } do AGP 9.3.0 não define isMinifyEnabled no objeto ApplicationVariant.
|
|
| Dexer (D8) |
|
O D8 9.2.14 é cerca de 38% mais lento que o 8.13.6 em "mergeProjectDexDebug" com entrada/saída idênticas.
|
|
| Redutor (R8) |
|
Modo de depuração do D8: ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 31 — regressão entre R8 8.8.34 e 8.9.27
|
|
VerifyError: o Outliner estende incorretamente a região try-catch, causando um registro não inicializado.
|
|
O R8 grava o arquivo `.kotlin_module` com ":" no nome, produzindo um nome de arquivo inválido no Windows.
|
|
Não determinismo de build do R8: entradas idênticas produzem dex/mapeamentos diferentes (regressão de "Retain Assume instructions in LIR")
|
|
Mapeamento duplicado com o R8 9.1
|
|
O AGP produz intermitentemente arquivos dex que falham na verificação e travam o app na inicialização.
|
|
NullPointerException: não é possível invocar Position.getOutermostCaller() porque entryPosition é nulo
|
|
Alto consumo de memória por regra
|
|
R8: VerifyError no Android 4.4
|
|
Plug-in do Android para Gradle 9.3.2
| Problemas corrigidos |
| Lint |
|
O lint do AGP 9.3 falha no JDK 17 — NoSuchMethodError: java.util.List.removeLast() no JavaDocParser do intellij-core agrupado
|
|
Plug-in do Android para Gradle 9.3.1
| Problemas corrigidos |
|
Nenhum problema público foi marcado como corrigido no AGP 9.3.1
|
Plug-in do Android para Gradle 9.3.0-rc02
| Problemas corrigidos |
|
Nenhum problema público foi marcado como corrigido no AGP 9.3.0-rc02
|
Plug-in do Android para Gradle 9.3.0-rc01
| Problemas corrigidos |
|
Nenhum problema público foi marcado como corrigido no AGP 9.3.0-rc01
|
Plug-in do Android para Gradle 9.3.0-alpha12
| Problemas corrigidos |
| Plug-in do Android para Gradle |
|
Falha na build: vazamento de identificador de arquivo em classes.jar em compile_library_classes_jar impede a reconstrução no Windows até a reinicialização do ambiente de desenvolvimento integrado
|
|
| Lint |
|
O Lint trata a biblioteca Java importada como um projeto Android, ignorando a versão do SDK de compilação.
|
|
Plug-in do Android para Gradle 9.3.0-alpha11
| Problemas corrigidos |
|
Nenhum problema público foi marcado como corrigido no AGP 9.3.0-alpha11
|
Plug-in do Android para Gradle 9.3.0-alpha10
| Problemas corrigidos |
|
Nenhum problema público foi marcado como corrigido no AGP 9.3.0-alpha10
|
Plug-in do Android para Gradle 9.3.0-alpha09
| Problemas corrigidos |
|
Nenhum problema público foi marcado como corrigido no AGP 9.3.0-alpha09
|
Plug-in do Android para Gradle 9.3.0-alpha08
| Problemas corrigidos |
|
Nenhum problema público foi marcado como corrigido no AGP 9.3.0-alpha08.
|
Plug-in do Android para Gradle 9.3.0-alpha07
| Problemas corrigidos |
|
Nenhum problema público foi marcado como corrigido no AGP 9.3.0-alpha07.
|
Plug-in do Android para Gradle 9.3.0-alpha06
| Problemas corrigidos |
| Plug-in do Android para Gradle |
|
JavaDocGenerationTask deve usar workers
|
|
Plug-in do Android para Gradle 9.3.0-alpha05
| Problemas corrigidos |
| Redutor (R8) |
|
Mapeamento de ofuscação L8 não incluído em app mapping.txt
|
|
Plug-in do Android para Gradle 9.3.0-alpha04
| Problemas corrigidos |
| Plug-in do Android para Gradle |
|
O conjunto de origem KMP keepRules é ignorado sem it.consumerKeepRules.publish = true
|
|
Plug-in do Android para Gradle 9.3.0-alpha03
| Problemas corrigidos |
| Plug-in do Android para Gradle |
|
java.lang.ClassNotFoundException: não foi possível encontrar a classe "com.android.tools.r8.RecordTag" após fazer upgrade do Gradle para a versão 9.2.0.
|
|
| Lint |
|
Erro de lint quando a redução de recursos está desativada
|
|
Plug-in do Android para Gradle 9.3.0-alpha02
| Problemas corrigidos |
| Plug-in do Android para Gradle |
|
Solicitação de recurso: adicionar suporte a native_libs_merge_blame_file ao plug-in do Android para Gradle
|
|
| Lint |
|
Falta de crase na mensagem do problema AnnotationDetector
|
|
Erro de lint quando a redução de recursos está desativada
|
|
Plug-in do Android para Gradle 9.3.0-alpha01
| Problemas corrigidos |
| Plug-in do Android para Gradle |
|
Problema com códigos de versão gerados automaticamente
|
|
AGP: migrar do projeto como notação de dependência
|
|
| Lint |
|
Falso positivo de lint com UseKtx
|
|
Plug-in do Android para Gradle 9.3.0
| Problemas corrigidos |
|
Nenhum problema público foi marcado como corrigido no AGP 9.3.0
|
DSL de otimização atualizada para configurar regras de manutenção do R8
Apresenta uma DSL de otimização atualizada para configurar regras de manutenção para otimização do R8, com suporte para módulos de app e testes de módulos de biblioteca. Para configurar a otimização com a DSL atualizada, use o novo bloco optimization. Para apps,
configure o bloco optimization em um tipo de build (como release ou
debug) no script de build no nível do app. A DSL de otimização atualizada simplifica a configuração do R8:
- Ativar a otimização permite a otimização de código e a redução de recursos otimizada.
- Não é mais necessário especificar o arquivo padrão de regras de permanência do Android.
A DSL legada continua sendo compatível.
Introdução de conjuntos de origem para definir regras de manutenção
Coloque as regras de manutenção no conjunto de origem src/<variant>/keepRules/, com o
sufixo de arquivo .keep. Os conjuntos de origem para regras de manutenção são compatíveis com a DSL de otimização atualizada e a DSL legada. O uso de conjuntos de origem para regras de manutenção é compatível com módulos de app, módulos de biblioteca e como uma forma de definir regras de consumidor em módulos do Kotlin Multiplatform (KMP).