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 compatível com o Plug-in do Android para Gradle 8.4 é o nível 34. 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

Esta é 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 terceiros não autorizados.

A 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, clique em Ajuda > Verificar atualizações (ou Android Studio > Verificar atualizações no macOS) para receber a atualização. Caso contrário, baixe a versão estável mais recente.

Além disso, se você usou ativamente a funcionalidade de solicitação de pull do GitHub no IDE, recomendamos revogar 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), verifique os dois e revogue conforme necessário:

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

Depois de revogar o acesso aos tokens, configure o plug-in novamente para que todos os recursos, incluindo operações do Git, funcionem de novo.

Pedimos desculpas por qualquer inconveniente e pedimos que todos os usuários 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 reduzido, as classes de programa reduzidas serão publicadas para publicação entre projetos. Isso significa que, se um app depender da versão reduzida dos subprojetos da biblioteca do Android, o APK vai incluir classes reduzidas da biblioteca do Android. Talvez seja necessário ajustar as regras de manutenção da biblioteca caso haja classes ausentes no APK.

Se você estiver criando e publicando um AAR, os jars locais de 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 registre 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: Index 0 out of bounds for length 0
Problema no processamento de entradas incrementais da tarefa MergeJavaResourcesTask.
O AGP 8.3.0-alpha02 depende de bibliotecas com vulnerabilidades de segurança conhecidas.
O modelo de atividade selecionado exige um projeto com dependências androidx.*
O Assistente de upgrade do AGP remove erroneamente consumerProguardFiles do módulo
O Assistente de upgrade do AGP carrega infinitamente
SourceDirectories#static não deve depender da tarefa GenerateBuildConfig
A prévia do Compose não consegue resolver classes de dependência transitiva.
O AGP 8.3 interrompe a tarefa zipApksFor.
Artefatos do AndroidX Desktop empacotados em APKs 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 qualifierType incorreto
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 disambiguar 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 a segmentação do 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 sintético global 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 do GMD na CI