新規プロジェクト作成時に buildToolsVersion
の記載がありませんでした。
(必須だと思ってました)
なので、 buildToolsVersion
を記述しない時のデフォルトの動作について調べてみました。
結果
- Gradle Plugin のデフォルトのバージョンが使用される
- 書かなくても良いが、書いた方が新しいバージョンを使うことができる
デフォルトのバージョンはいくつ?
調査方法1:print する
task printBuildToolsVersion {
println android.buildToolsVersion
}
- ↑を
app/build.gradle
に追加して./gradlew printBuildToolsVersion
を実行する - 実行結果(Gradle Plugin Version : 3.0.1)
> Configure project :app
26.0.2
調査方法2:実装を見る
-
app/build.gradle
のcompileSdkVersion
を command キーを押下しながらクリックして、BaseExtension.class
を開く
-
private Revision buildToolsRevision;
変数に初期値を代入している箇所を探すと、AndroidBuilder.DEFAULT_BUILD_TOOLS_REVISION
を代入していることがわかります。
-
DEFAULT_BUILD_TOOLS_REVISION
の定義にジャンプ
デフォルトで 26.0.2
が設定されていることがわかります。
Q&A
Q : 書いた方が良いの?
- A : デフォルトで良いのなら、書かなくても良い
Q : 書くメリットは?
- A : 最新の BuildTools の存在を知ることができ、最新の BuildTools を使うことができる
- (書かないと、新しいバージョンの存在にさえ気づけない…)
Q : 更新し忘れそう
* A : ビルド時にも警告が出ますWARNING: The specified Android SDK Build Tools version (26.0.0) is ignored, as it is below the minimum supported version (26.0.2) for Android Gradle Plugin 3.0.1.
Android SDK Build Tools 26.0.2 will be used.
To suppress this warning, remove "buildToolsVersion '26.0.0'" from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.
まとめ
- Gradle Plugin のデフォルトのバージョンが使用される
- 書かなくても良いが、書いた方が新しいバージョンを使うことができる