Question

I have a Gradle build file that contains the following section:

android {
    compileSdkVersion 18
    buildToolsVersion "18.0.0"

This defines the exact version of build tools to use. Is it possible to specify this as a min requirement as it is for dependencies?

I tried:

android {
    compileSdkVersion 18
    buildToolsVersion "18.0.+"

to automatically use minor updates of the build tools if available but that isn't working. It produces the following error:

A problem occurred evaluating root project '####'.

Invalid full revision: 18.0.+

Was it helpful?

Solution

This is an intentional choice. The idea is that your build should be perfectly repeatable, and if you build on a different machine that may have a later version of the build tools, it won't suddenly start having errors. I could see an argument for wildcarding to the latest bugfix release ala 18.0.+ the way it does for other version strings in Gradle, but even then that breaks repeatability if there's a regression in the newer version of the build tools.

The relevant feature request for this is at https://code.google.com/p/android/issues/detail?id=59550

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top