Plug-in do Android para Gradle 3.1.0 (março de 2018)

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

Versão mínima Versão padrão Observações
Gradle 4.4 4.4 Para saber mais, consulte Como atualizar o Gradle.
Ferramentas de build do SDK 27.0.3 27.0.3 Instale ou configure as Ferramentas de build do SDK. Não será mais necessário especificar uma versão para o Build Tools usando a propriedade android.buildToolsVersion. O plug-in usa a versão mínima necessária por padrão.

Novo compilador DEX, D8

Por padrão, o Android Studio agora usa um novo compilador DEX denominado D8. A compilação DEX é o processo de transformar bytecode .class em bytecode .dex para o Android Runtime (ou Dalvik, para versões mais antigas do Android). Em comparação com o compilador anterior, chamado DX, o D8 compila mais rapidamente e gera arquivos DEX menores, com performance igual ou melhor em relação ao tempo de execução do app.

O fluxo de trabalho cotidiano de desenvolvimento de apps não vai mudar com o D8. No entanto, se você tiver algum problema relacionado ao novo compilador, informe um bug. Para desativar temporariamente o D8 e usar o DX, inclua o seguinte no arquivo gradle.properties do seu projeto:

      android.enableD8=false
    

Para projetos que usam recursos da linguagem Java 8, a simplificação de leitura incremental é ativada por padrão. Você pode desativá-la especificando o seguinte no arquivo gradle.properties do seu projeto:

      android.enableIncrementalDesugaring=false.
    

Usuário da versão de pré-lançamento: se você já estiver usando uma versão de pré-lançamento do D8, observe que agora ele é compilado em bibliotecas incluídas no SDK Build Tools, não no JDK. Portanto, se você acessa APIs já existentes no JDK, mas não nas bibliotecas do SDK Build Tools, ocorre um erro de build.

Mudanças de comportamento

  • Ao criar vários APKs voltados, cada um, para uma ABI diferente, o plug-in não gera mais APKs para as seguintes ABIs por padrão: mips, mips64 e armeabi.

    Se você quiser criar APKs voltados para essas ABIs, use o NDK r16b ou anterior e especifique as ABIs no arquivo build.gradle, como mostrado abaixo:

              splits {
                  abi {
                      include 'armeabi', 'mips', 'mips64'
                      ...
                  }
              }
            
              splits {
                  abi {
                      include("armeabi", "mips", "mips64")
                      ...
                  }
              }
            
  • O cache de build do plug-in do Android agora mostra entradas de cache com mais de 30 dias.

  • Transmitir "auto" para resConfig não seleciona mais recursos de string automaticamente para empacotar no seu APK. Se você continuar usando "auto", o plug-in vai empacotar todos os recursos de string que seu app e as dependências dele fornecerem. Portanto, é necessário especificar cada localidade a ser empacotada pelo plug-in no seu APK.

  • Como os módulos locais não podem depender do APK de teste do app, adicionar dependências aos seus testes instrumentados usando a configuração androidTestApi, em vez de androidTestImplementation, faz com que o Gradle emita o seguinte aviso:

            WARNING: Configuration 'androidTestApi' is obsolete
            and has been replaced with 'androidTestImplementation'
            
            WARNING: Configuration 'androidTestApi' is obsolete
            and has been replaced with 'androidTestImplementation'
            

Correções

  • Corrigido um problema em que o Android Studio não reconhecia dependências em builds compostos.
  • Corrige um problema em que um erro de sincronização ocorria no projeto ao carregar o plug-in do Android várias vezes em um único build. Por exemplo, quando vários subprojetos incluíam o plug-in do Android no caminho de classe do buildscript.