【お知らせ】みんプロ式Flutter講座は2026年4月末をもって新規販売を終了いたしました。詳しくはこちら →
[Flutter/Android]ビルドの設定ファイル(build.gradle)に登場する色んなバージョンの違い(compileSdkVersion / buildToolsVersion / minSdkVersion / targetSdkVersion)
モジュールレベル(appレベル)のビルドの設定ファイル(build.gradle)には、様々なバージョン(version)と名のつくものが登場しますが、その違いが一体何やねんということを解説しています。
android {
compileSdkVersion 27 ← こういうの
buildToolsVersion '27.0.3' ← こういうの
defaultConfig {
applicationId "net.minpro.straightmachine"
minSdkVersion 15 ← こういうの
targetSdkVersion 27 ← こういうの
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
「compileSdkVersion」と「buildToolsVersion」
ビルドは、上のような2つのステップになっていて
- ソースコードやアプリで使うリソース(画像・音・データなど)を、コンピューターが読める言葉(バイトコード)に翻訳して、【コンパイルする】
- それをアプリに仕立て上げる【ビルドする】
という感じになっていますが、
この
- 1のプロセスで使うAPIレベルのバージョンが「compileSdkVersion」で、
- 2のプロセスで使うAPIレベルのバージョンが「buildToolsVersion」
のようです。
「buildToolsVersion」は、build.gradleに必ずしも記述しておく必要はないらしく、その場合はAndroid Studioくんが、自動的にバージョンを設定してくれるようです。
If you’re using Android plugin for Gradle 3.0.0 or higher, your project automatically uses a default version of the build tools that the plugin specifies.
また、「compileSdkVersion」の数字は「targetSdkVersion」より低いとエラーになるようです。
「minSdkVersion」と「targetSdkVersion」
「minSdkVersion」は、プロジェクト作成時に設定した、アプリがインストールできる端末の最低のAPIレベル(Androidのバージョン)のことです。
「targetSdkVersion」は、公式の説明では
Specifies the API level used to test the app.
と書いてあり、アプリをテストするときに設定するAPIレベル(Androidのバージョン)ということのようです。
テストするときに使うバージョンということですから、「ターゲット」ということなのかもしれませんが、少なくともここでは、
「compileSdkVersion」の数字は「targetSdkVersion」より低いとエラーになる
ということを知っておけば、よさそうです。
(詳しくは下の動画で解説していますので、よろしければご覧ください)




