LoginSignup
22
9

More than 5 years have passed since last update.

buildToolsVersion 省略時の挙動

Posted at

新規プロジェクト作成時に 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.gradlecompileSdkVersion を command キーを押下しながらクリックして、 BaseExtension.class を開く

スクリーンショット 2018-01-19 13.01.09(2).png

  • private Revision buildToolsRevision; 変数に初期値を代入している箇所を探すと、 AndroidBuilder.DEFAULT_BUILD_TOOLS_REVISION を代入していることがわかります。
    スクリーンショット 2018-01-19 12.52.52.png 

  • DEFAULT_BUILD_TOOLS_REVISION の定義にジャンプ
    スクリーンショット 2018-01-19 12.52.46.png

デフォルトで 26.0.2 が設定されていることがわかります。

Q&A

Q : 書いた方が良いの?

  • A : デフォルトで良いのなら、書かなくても良い

Q : 書くメリットは?

  • A : 最新の BuildTools の存在を知ることができ、最新の BuildTools を使うことができる
  • (書かないと、新しいバージョンの存在にさえ気づけない…)

Q : 更新し忘れそう

  • A : 新しいバージョンがあると IDE 警告が出ますスクリーンショット 2018-01-19 13.17.59.png
  • A : Gradle Plugin でサポートされているバージョンよりも古い値を書いていても IDE 警告が出ます スクリーンショット 2018-01-19 13.20.01.png
  • 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 のデフォルトのバージョンが使用される
  • 書かなくても良いが、書いた方が新しいバージョンを使うことができる
22
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
9