Plug-in do Android para Gradle 8.4.0 (abril de 2024)

O Plug-in do Android para Gradle 8.4.0 é uma versão principal que inclui vários novos recursos e melhorias.

Compatibilidade

O nível máximo da API que o Plug-in do Android para Gradle 8.4 oferece suporte é o 34. Confira outras informações de compatibilidade:

Versão mínima Versão padrão Observações
Gradle 8,6 8,6 Para saber mais, consulte Como atualizar o Gradle.
Ferramentas de build do SDK 34.0.0 34.0.0 Instale ou configure as Ferramentas de build do SDK.
NDK N/A 26.1.10909125 Instale ou configure uma versão diferente do NDK.
JDK 17 17 Para saber mais, consulte Como configurar a versão do JDK.

Confira abaixo os novos recursos do Plug-in do Android para Gradle 8.4.

Versões de patch

Confira abaixo uma lista das versões de patch do Android Studio Jellyfish e do Plug-in do Android para Gradle 8.4.

Android Studio Jellyfish | 2023.3.1 Patch 2 e AGP 8.4.2 (junho de 2024)

Atualização de segurança importante:uma vulnerabilidade de segurança no plug-in do GitHub disponível no Android Studio Iguana | 2023.2.1 e versões mais recentes pode expor tokens de acesso a partes não autorizadas.

Correção: a Jetbrains resolveu o problema nos produtos da plataforma IntelliJ, e a correção já está disponível no Android Studio Jellyfish | 2023.3.1 Patch 2 (2023.3.1.20).

Se você já tiver um build do Android Studio no canal estável, poderá receber a atualização clicando em Help > Check for Updates (ou Android Studio > Check for Updates no macOS). Caso contrário, faça o download do build estável mais recente.

Além disso, se você usou ativamente a funcionalidade de solicitação de pull do GitHub no ambiente de desenvolvimento integrado, recomendamos que você revogue todos os tokens do GitHub usados pelo plug-in. Como o plug-in pode usar a integração do OAuth ou tokens de acesso pessoal (PATs, na sigla em inglês), verifique os dois e revogue conforme necessário:

  • Para revogar o acesso à integração OAuth, acesse Aplicativos > Apps OAuth autorizados e revogue o acesso ao token Integração do IDE JetBrains.
  • Para revogar o acesso a PATs, acesse Tokens de acesso pessoal e exclua o token emitido para o plug-in do GitHub. O nome padrão do token é IntelliJ IDEA GitHub integration plugin, mas você pode estar usando um nome personalizado.

Depois de revogar o acesso aos tokens, é necessário configurar o plug-in novamente para que todos os recursos do plug-in, incluindo as operações do Git, voltem a funcionar.

Pedimos desculpas por qualquer inconveniente e pedimos a todos os usuários que atualizem imediatamente para proteger o código e os dados.

Esta atualização secundária também inclui estas correções de bugs.

Android Studio Jellyfish | 2023.3.1 Patch 1 e AGP 8.4.1 (maio de 2024)

Esta atualização secundária inclui estas correções de bugs.

As classes da biblioteca são reduzidas

A partir do Plug-in do Android para Gradle 8.4, se um projeto de biblioteca do Android for minimizado, as classes de programa encolhidas serão publicadas para publicação entre projetos. Isso significa que, se um app depender da versão reduzida dos subprojetos da biblioteca Android, o APK vai incluir classes de biblioteca Android reduzidas. Talvez seja necessário ajustar as regras de manutenção de biblioteca caso haja classes ausentes no APK.

Caso você esteja criando e publicando um AAR, os JARs locais em que sua biblioteca depende serão incluídos sem redução no AAR, o que significa que o redutor de código não será executado neles.

Para reverter ao comportamento anterior, defina android.disableMinifyLocalDependenciesForLibraries no arquivo gradle.properties e envie um bug. As versões futuras do AGP vão remover essa flag.

Problemas corrigidos

Plug-in do Android para Gradle 8.4.0

Problemas corrigidos
Plug-in do Android para Gradle
Melhoria na mensagem de erro explicando por que a opção "--release" não pode ser usada para JavaCompile
Desativar o armazenamento em cache de MergeSourceSetFolders usando @DoNotCacheByDefault
Não foi possível definir a versão do JaCoCo no AGP 8.2.0.
O DynamicFeatureBuildType não tem isDebuggable.
As classes de biblioteca minificadas não são publicadas corretamente para o consumo entre projetos.
A API Variant#sources que exclui os arquivos gerados precisa ser fornecida.
Os modelos AGP não contêm dependências do projeto java-platform.
ExtractAarTransform cria classes.jar não reproduzíveis para aars que não têm classes.jar.
Foi permitida a configuração de sourceInformation de ComposeOptions.
Não é possível encontrar o campo: sdk_runtime na mensagem android.bundle.DeviceSpec.
Foi adicionado suporte a compileOnlyApi.
O R8 falha em um módulo de biblioteca quando o processamento de recursos está desativado.
Foi adicionada a capacidade de mudar o nome do artefato durante a transformação.
Definir a saída da tarefa como srcDir de sourceSets.androidMain.resources não cria dependências de tarefa.
AndroidPluginVersion.toString() não tem 0s na frente.
Artifacts.add(FileSystemLocation) precisa ser mais restritivo.
O AGP 8.3.0-alpha11 produz um APK de lançamento que falha na inicialização com android.content.res.Resources$NotFoundException.
A tarefa de instalação do Plug-in do Android para Gradle 8.2.0 falha em projetos que usam recursos dinâmicos.
A compilação da AIDL falha com IndexOutOfBoundsException: índice 0 fora dos limites para comprimento 0.
Problema de processamento de entradas incrementais em MergeJavaResourcesTask.
O AGP 8.3.0-alpha02 depende de bibliotecas com vulnerabilidades de segurança conhecidas
O modelo de atividade selecionado requer um projeto com dependências androidx.*
O Assistente de upgrade do AGP remove erroneamente o consumerProguardFiles do módulo.
O assistente de upgrade do AGP carrega infinitamente
SourceDirectories#static não depende da tarefa GenerateBuildConfig.
A visualização do Compose não consegue resolver classes de dependência transitiva.
O AGP 8.3 interrompe a tarefa zipApksFor.
Artefatos do AndroidX Desktop empacotados no APK do Android
Lint
O GradleModelMocker do framework de teste do lint não permite definir a versão da biblioteca.
Lint K2 UAST: UCallableReferenceExpression informa o qualifierType errado.
Falso positivo de lint com useK2Uast=true com funções sobrecarregadas.
[BuildTool/Lint] Propriedade de construtor ChecksSdkIntAtLeast.
Integração com o Lint
O lint não consegue resolver a ambiguidade de uma dependência do KMP.

Plug-in do Android para Gradle 8.4.1

Problemas corrigidos
Plug-in do Android para Gradle
Permitir a supressão de um aviso sobre a descontinuação do suporte do JDK 21 para segmentação de Java 8
Dexer (D8)
java.lang.VerifyError: classe do verificador recusada.
Erro de conversão de formato da nova versão do R8 após a ofuscação
Os builds intermediários podem não ter conteúdo global sintético completo para stubs.

Plug-in do Android para Gradle 8.4.2

Problemas corrigidos
Plug-in do Android para Gradle
O AGP 8.4 parece interromper os downloads de GMD no CI