Android gradle: buildtoolsVersion vs compileSdkVersion

Respostas:

199

compileSdkVersion é a versão da API do Android em que você compila.

buildToolsVersioné a versão dos compiladores (aapt, dx, compilador de renderscript, etc ...) que você deseja usar. Para cada nível da API (começando com 18), há uma versão .0.0 correspondente.

No IO 2014, lançamos a API 20 e as ferramentas de construção 20.0.0 para acompanhá-la.

Entre os lançamentos do Android, lançaremos atualizações dos compiladores e, portanto, lançaremos as versões .0.1, .0.2, etc ... Como não queremos atualizar silenciosamente essas versões sob você, cabe a você mudar para o nova versão quando for conveniente para você.

Você pode usar uma versão mais alta das ferramentas de compilação do que sua compileSdkVersion, para adquirir um compilador novo / melhor sem alterar o que você construiu seu aplicativo.

Xavier Ducrohet
fonte
10
É possível usar um buildToolsVersion mais alto em um compileSdkVersion inferior, por exemplo 20.0.0 buildToolsVersion em um compileSdkVersion 18.0.0?
Glide
5
@ Gllide sim, as ferramentas de compilação suportam versões mais antigas.
Xavier Ducrohet
1
@XavierDucrohet Tenho que especificar buildToolsVersion? Lembro que li em algum lugar que a versão mais recente das ferramentas de compilação é selecionada automaticamente. Tentei remover o buildToolsVersion, mas o Android Studio não está satisfeito com isso.
Hong
11
Qualquer pessoa com um link faz um documento sobre o que realmente está acontecendo nos bastidores com compileSdkVersion, buildToolsVersion, minSdkVersion e targetSdkVersion? Eu gostaria de entender corretamente.
powder366
2
@ powder366 Veja este post valioso de Ian Lake: - medium.com/google-developers/…
maveroid
46

Atualização do Android Studio 3.0

Não é mais tão importante saber exatamente buildToolsVersioncomo costumava ser, porque agora é escolhido automaticamente.

A documentação diz:

Você não precisa mais especificar uma versão para as ferramentas de construção (portanto, agora você pode remover a android.buildToolsVersionpropriedade). Por padrão, o plug-in usa automaticamente a versão mínima necessária das ferramentas de construção para a versão do plug-in Android que você está usando.

Localizando o número exato da versão

Eu originalmente vim aqui procurando saber o número exato da versão da versão mais recente das Ferramentas de compilação (nos dias em que isso precisava ser atualizado manualmente). Se você ainda precisar fazer isso, poderá encontrá-lo da seguinte maneira:

Vá para Ferramentas> Gerenciador de SDK> Ferramentas do SDK (guia) . Selecione Ferramentas de compilação do SDK do Android na lista e marque Mostrar detalhes do pacote . O último item mostrará a versão mais recente.

insira a descrição da imagem aqui

Na imagem acima, posso ver que eu buildToolsVersion 27.0.3instalei. Existe uma rcversão mais recente (candidata a lançamento), mas não a instalei. Vou quando a versão estável sair.

Suragch
fonte
Só para ficar claro, no AS 3.2 o caminho para o acima é "File => Configurações => Aparência & behavor ...."
JL_SO