Plug-in do Android para Gradle 3.2.0 (setembro de 2018)

Esta versão do plug-in do Android requer o seguinte:

3.2.1 (outubro de 2018)

Com esta atualização, não será mais necessário especificar uma versão para o SDK Build Tools. O Plug-in do Android para Gradle agora usa a versão 28.0.3 por padrão.

Novos recursos

  • Suporte à criação de Android App Bundles: o pacote de apps é um novo formato de upload que inclui todo o código e recursos compilados do app e adia a geração e a assinatura do APK para a Google Play Store. Não é mais necessário criar, assinar e gerenciar vários APKs, e os usuários recebem downloads menores, otimizados para o dispositivo deles. Para saber mais, leia Sobre os Android App Bundles.

  • Suporte a velocidades aprimoradas de build incremental ao usar processadores de anotações: a DSL AnnotationProcessorOptions agora estende a interface CommandLineArgumentProvider, que permite que você ou o autor do processador de anotações anote argumentos para o processador usando anotações de tipos de propriedade de build incremental (links em inglês). O uso dessas anotações melhora a exatidão e a performance de builds limpos incrementais e em cache. Para saber mais, leia Transmitir argumentos para os processadores de anotações.

  • Ferramenta de migração para o AndroidX: ao usar o Plug-in do Android para Gradle 3.2.0 com o Android 3.2 e versões mais recentes, você pode migrar as dependências locais e do Maven do seu projeto para que usem as novas bibliotecas AndroidX, selecionando Refactor > Migrate to AndroidX na barra de menus. O uso dessa ferramenta de migração também configura as flags abaixo como true no seu arquivo gradle.properties:

    • android.useAndroidX: quando configurado como true, o plug-in do Android usa a biblioteca AndroidX adequada, em vez de uma Biblioteca de Suporte. Quando essa flag não é especificada, o plug-in a configura como false por padrão.

    • android.enableJetifier: quando configurado como true, o plug-in do Android migra automaticamente as bibliotecas de terceiros já existentes para usar o AndroidX, reprogramando os binários delas. Quando essa flag não é especificada, o plug-in a configura como false por padrão. Você pode configurar essa flag como true apenas quando android.useAndroidX também estiver configurado como true. Caso contrário, ocorre um erro de build.

      Para saber mais, leia a Visão geral do AndroidX.

  • Novo redutor de código, R8: o R8 é uma nova ferramenta de redução e ofuscação de código que substitui o ProGuard. Comece a usar a versão de pré-lançamento do R8 incluindo o seguinte no arquivo gradle.properties do seu projeto:

            android.enableR8 = true
            
            android.enableR8 = true
            

Mudanças de comportamento

  • Agora, a simplificação de leitura com D8 é ativada por padrão.

  • O AAPT2 agora fica no repositório Maven do Google. Para usar o AAPT2, confira se você tem a dependência do google() no seu arquivo build.gradle, conforme mostrado abaixo:

              buildscript {
                    repositories {
                        google() // here
                        jcenter()
                    }
                    dependencies {
                        classpath 'com.android.tools.build:gradle:3.2.0'
                    }
                }
                allprojects {
                    repositories {
                        google() // and here
                        jcenter()
                }
              
              buildscript {
                    repositories {
                        google() // here
                        jcenter()
                    }
                    dependencies {
                        classpath 'com.android.tools.build:gradle:3.2.0'
                    }
                }
                allprojects {
                    repositories {
                        google() // and here
                        jcenter()
                }
              
  • Agora, o multidex nativo é ativado por padrão. As versões anteriores do Android Studio ativavam a multidex nativa ao implantar a versão de depuração de um app em um dispositivo com a API de nível 21 do Android ou mais recente. Agora, independente de você estar implantando em um dispositivo ou criando um APK para a versão, o Plug-in do Android para Gradle ativa o multidex nativo para todos os módulos configurados como minSdkVersion=21 ou mais recente.

  • O plug-in agora aplica uma versão mínima dos plug-ins protobuf (0.8.6), Kotlin (1.2.50) e Crashlytics (1.25.4).

  • O plug-in de módulo de recurso, com.android.feature, agora aplica o uso exclusivo de letras, dígitos e sublinhados ao especificar um nome de módulo. Por exemplo, se o nome do módulo de recursos incluir traços, haverá um erro de build. Esse comportamento corresponde ao do plug-in de recursos dinâmicos.

Correções de bugs

  • O JavaCompile agora pode ser armazenado em cache em projetos com vinculação de dados (problema 69243050).
  • Melhor evasão de compilação para módulos de biblioteca com vinculação de dados (problema 77539932).
  • Agora, você pode reativar a configuração sob demanda (em inglês), caso a tenha desativado em versões anteriores devido a alguns erros de build imprevisíveis (problema 77910727).