Plug-in do Android para Gradle 9.2.0 (abril de 2026)

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 37.0. 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 no 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 de 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.1

Problemas corrigidos
Plug-in do Android para Gradle
java.lang.ClassNotFoundException: Didn't find class "com.android.tools.r8.RecordTag" after upgrading gradle to 9.2.0

Plug-in do Android para Gradle 9.2.0

Problemas corrigidos
Plug-in do Android para Gradle
Warn users if they have commonTest but forget withHostTestBuilder
[fused lib - public] OkHttp includes sources
Cannot run androidDeviceTest with manifest placeholders in library (AGP 9.0.0 with com.android.kotlin.multiplatform.library plugin)
AGP should warn if user has src/androidDeviceTest/java with java disabled
AGP 9.0 No androidComponents.onVariant equivalent for applicationVariants.all.mergeAssetsProvider
`*.xml.flat` files contain absolute file paths
R8D8ThreadPoolBuildService not registered
JdkImageTransform failure with JDK 26
Automatically encode minAgpVersion in the AAR metadata in AGP 10.0
Renaming APK using new AGP DSL
Error when accessing (but not evaluating) bootClasspath IllegalStateException: targetCompatibility is not yet finalized
keepRules sourceset not working for libraries
Embed CC compatibility declaration in AGP
Update Kotlin Gradle plugin dependency to 2.3.10
Allow higher compileSdk for tests than main
Lint
Lint typo in message
Truncated context window in Lint SARIF reports due to stuck offset pointer in `SarifReporter.kt`
Lint Gradle client is missing a critical feature making it unreliable at best
Lint error when resource shrinking is disabled
AGP 9 Lint reports WrongConstant when using nested IntDef constants
Lint error when resource shrinking is disabled
Integração com o Lint
Android Lint fails with custom lint checks compiled to Java 21 bytecode
Lint Gradle tasks ignore --quiet flag
Redutor (R8)
Targeting Java 11 seems to break d8