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

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

  • Gradle 4.4 ou mais recente.

    Para saber mais, leia a seção sobre como atualizar o Gradle.

  • Build Tools 27.0.3 ou mais recente.

    Lembre-se de que não vai ser mais necessário especificar uma versão para o Build Tools usando a propriedade android.buildToolsVersion, porque 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ários da versão de pré-lançamento:se você já estiver usando uma versão de pré-lançamento do D8, ela agora compila em bibliotecas incluídas nas ferramentas de build do SDK, não no JDK. Portanto, se você estiver acessando APIs que existem no JDK, mas não nas bibliotecas de ferramentas de build do SDK, vai receber um erro de compilação.

Mudanças de comportamento

  • Ao criar vários APKs voltados, cada um, para uma ABI diferente, o 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.