O Plug-in do Android para Gradle 9.2 é uma versão secundária que inclui vários novos recursos e melhorias.
Compatibilidade
O nível máximo da API com suporte do Plug-in do Android para Gradle 9.2 é o 36.1. Confira outras informações de compatibilidade:
| Versão mínima | Versão padrão | Observações | |
|---|---|---|---|
| Gradle | 9.4.1 | 9.4.1 | Para saber mais, consulte Como atualizar o Gradle. |
| Ferramentas de build do SDK | 36.0.0 | 36.0.0 | Instale ou configure as ferramentas de build do SDK. |
| NDK | N/A | 28.2.13676358 | Instale ou configure uma versão diferente do NDK. |
| JDK | 17 | 17 | Para saber mais, consulte Como configurar a versão do JDK. |
Relatórios de cobertura e testes unificados
O AGP 9.2.0-alpha07 introduz tarefas para gerar painéis HTML que consolidam os resultados dos testes e a cobertura de vários tipos de testes (unidade e instrumentação), módulos e variantes de build, oferecendo uma visão geral abrangente em um único painel. Para mais informações, consulte Gerar relatórios de cobertura de código unificados e Conferir relatórios de testes unificados.
Mudanças no R8
As seguintes mudanças do R8 estão incluídas no AGP 9.2.0.
Semântica -keepattributes mais rigorosa para manter anotações invisíveis no ambiente de execução
As anotações invisíveis no ambiente de execução não podem ser lidas durante a execução. Portanto, o D8 remove incondicionalmente as anotações invisíveis no ambiente de execução, sem opção de mudar isso.
Para compatibilidade com o ProGuard, o R8 oferece suporte à saída de anotações invisíveis no ambiente de execução. No entanto, ao compilar para DEX, as anotações invisíveis no ambiente de execução geralmente nunca devem ser mantidas. No entanto, é uma prática comum incluir a regra conveniente -keepattributes *Annotation* (direta ou indiretamente de regras de retenção do consumidor) para que o R8 mantenha anotações visíveis no ambiente de execução.
Infelizmente, isso também acaba mantendo anotações invisíveis no ambiente de execução.
Para atenuar esse problema e corresponder melhor ao comportamento do D8, os padrões -keepattributes com caracteres curinga não correspondem mais a RuntimeInvisibleAnnotations, RuntimeInvisibleParameterAnnotations e RuntimeInvisibleTypeAnnotations.
Como resultado, as anotações invisíveis no ambiente de execução só serão mantidas se o nome do atributo for mencionado explicitamente sem caracteres curinga.
Nenhuma das regras a seguir vai manter anotações invisíveis no ambiente de execução:
-keepattributes *
-keepattributes *Annotation*
-keepattributes *Invisible*
Para manter anotações invisíveis no ambiente de execução, use a seguinte regra:
-keepattributes RuntimeInvisibleAnnotations,
RuntimeInvisibleParameterAnnotations,
RuntimeInvisibleTypeAnnotations
Suporte a nomes negados em regras de membros
A linguagem de configuração foi estendida para que você possa corresponder a padrões de nomes de membros negados.
Por exemplo, para corresponder a todos os métodos que não terminam em "ForTesting", use a seguinte regra:
-keepclassmembers class com.example.MyClass {
*** !*ForTesting(...);
}
Os padrões de nomes de membros também podem ser negados na pré-condição das regras -if. Se um padrão de nome de membro negado contiver caracteres curinga, esses caracteres não poderão ser referenciados novamente na regra -if consequente.
Problemas corrigidos
Plug-in do Android para Gradle 9.2.0-alpha04
| Problemas corrigidos | |||
|---|---|---|---|
| Plug-in do Android para Gradle |
|
||
Plug-in do Android para Gradle 9.2.0-alpha03
| Problemas corrigidos | |||
|---|---|---|---|
| Plug-in do Android para Gradle |
|
||
| Lint |
|
||
| Integração com o Lint |
|
||
Plug-in do Android para Gradle 9.2.0-alpha02
| Problemas corrigidos | ||||
|---|---|---|---|---|
| Plug-in do Android para Gradle |
|
|||
| Integração com o Lint |
|
|||
Plug-in do Android para Gradle 9.2.0-alpha01
| Problemas corrigidos | |||||
|---|---|---|---|---|---|
| Plug-in do Android para Gradle |
|
||||
| Lint |
|
||||