AndroidのGradleがアップデートされたぞー!
Instant Runに対応するぞー!!
そんな時に遭遇した、Gradleってなんなのかという素朴な疑問。
ざっくり調べてみた。
と、意気込んで、build.gradleをアップデート。
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
}
すると……
今度は、gradle-2.10以上……的なことを言われたりします。
gradle上げたじゃん、的な。
結局、Gradleってなに。
ざっくりまとめると、
Gradle自体は、ビルドツール。依存ライブラリとかをまとめて管理できて便利なやつ。
いつも、dependencies、compileとかを書いているから、なんとなくわかるかなと。
ざっくりね。
じゃぁ、gradle 2.0.0になったっていうのは何か
こっちは、正確には「Android Plugin for Gradle」が2.0.0という話。
GradleのAndroid用プラグインが、バージョン2になったというわけか。
上で書いた、build.gradleでは、プラグインのバージョンを指定していたのね。
Android Plugin for Android
http://developer.android.com/intl/ja/tools/building/plugin-for-gradle.html
http://developer.android.com/intl/ja/tools/revisions/gradle-plugin.html#updating-plugin
これを読むと、「Android Plugin for Gradle 2.0.0」は、「gradle 2.10 or higher」で対応って書いてある。
いろいろ探してみると、gradle-wrapper.propertiesというファイルには、どのバージョンのgradleを使うかが書いてある。
distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-bin.zip
なるほどなるほど、2.8なのね。そりゃたしかに、gradleをアップデートせよと出てくるわけだ。
ちなみに、Gradleそのものは、既に2.12とかになっている……。
まとめると……
Androidをビルドするプラグインをversion 2に上げようとするなら、
ビルドに使っているGradleは、2.10以上にしないとね、という話だった。