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 compatível com o Plug-in do Android para Gradle 9.2 é o 37.0. Outras informações sobre 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 teste unificados

O AGP 9.2.0-alpha07 apresenta tarefas para gerar painéis HTML que consolidam resultados e cobertura de testes de vários tipos (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 unificados de cobertura de código e Ver relatórios de teste 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 em tempo de execução

Anotações invisíveis do ambiente de execução não podem ser lidas durante a execução. Portanto, o D8 remove incondicionalmente as anotações invisíveis em tempo 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 em tempo de execução. Mas, ao compilar para DEX, as anotações invisíveis em tempo de execução geralmente nunca são mantidas. No entanto, é uma prática comum incluir a regra conveniente -keepattributes *Annotation* (direta ou indiretamente das regras de manutenção do consumidor) para que o R8 mantenha as anotações visíveis em tempo de execução. Infelizmente, isso também acaba mantendo anotações invisíveis de tempo de execução.

Para reduzir 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 em tempo 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 em tempo de execução:

-keepattributes *
-keepattributes *Annotation*
-keepattributes *Invisible*

Para manter as anotações invisíveis do tempo de execução, use a seguinte regra:

-keepattributes RuntimeInvisibleAnnotations,
                RuntimeInvisibleParameterAnnotations,
                RuntimeInvisibleTypeAnnotations

Suporte para 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 nome de membro também podem ser negados na pré-condição das regras -if. Se um padrão de nome de membro negado contiver caracteres curinga, eles não poderão ser referenciados novamente na regra consequente -if.

Problemas corrigidos

Plug-in do Android para Gradle 9.2.1

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.

Plug-in do Android para Gradle 9.2.0

Problemas corrigidos
Plug-in do Android para Gradle
Avisar os usuários se eles tiverem commonTest, mas esquecerem withHostTestBuilder
[fused lib - public] OkHttp includes sources
Não é possível executar androidDeviceTest com marcadores de posição de manifesto na biblioteca (AGP 9.0.0 com o plug-in com.android.kotlin.multiplatform.library)
O AGP precisa avisar se o usuário tiver src/androidDeviceTest/java com o Java desativado.
AGP 9.0: não há equivalente androidComponents.onVariant para applicationVariants.all.mergeAssetsProvider
Os arquivos `*.xml.flat` contêm caminhos absolutos de arquivos.
R8D8ThreadPoolBuildService não registrado
Falha do JdkImageTransform com o JDK 26
Codificar automaticamente minAgpVersion nos metadados AAR no AGP 10.0
Renomear APK usando a nova DSL do AGP
Erro ao acessar (mas não avaliar) bootClasspath IllegalStateException: targetCompatibility ainda não foi finalizado
O conjunto de fontes keepRules não funciona para bibliotecas
Incorporar a declaração de compatibilidade com CC no AGP
Atualizar a dependência do plug-in Gradle do Kotlin para 2.3.10
Permitir compileSdk mais alto para testes do que para o principal
Lint
Corrigir erro de digitação na mensagem
Janela de contexto truncada em relatórios SARIF do Lint devido a um ponteiro de deslocamento preso em "SarifReporter.kt"
O cliente do Lint Gradle não tem um recurso essencial, o que o torna pouco confiável.
Erro de lint quando a redução de recursos está desativada
O lint do AGP 9 informa WrongConstant ao usar constantes IntDef aninhadas.
Erro de lint quando a redução de recursos está desativada
Integração com o Lint
Falha do Android Lint com verificações de lint personalizadas compiladas para bytecode Java 21
As tarefas do Gradle do lint ignoram a flag --quiet
Redutor (R8)
A segmentação do Java 11 parece interromper o d8.