[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. ソースコードやアプリで使うリソース(画像・音・データなど)を、コンピューターが読める言葉(バイトコード)に翻訳して、【コンパイルする】
  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」より低いとエラーになる

ということを知っておけば、よさそうです。

(詳しくは下の動画で解説していますので、よろしければご覧ください)

こんな記事も読まれています

おすすめコンテンツ




Flutter(フラッター)


みんプロ作成アプリ




TOP