こんにちは。YOSHITAKA(@YOSHITA19704216)です。
- compileSdkVersion とbuildToolsVersion の違いがわかります。
Contents
compileSdkVersion とbuildToolsVersion の違いとは
対象者
- compileSdkVersion とbuildToolsVersion の違いがぼんやりしている人向けです。
compileSdkVersion
コンパイル時に使うAndroid SDKのバージョンです。
(アプリをコンパイルする際のAPIバージョン。)
このAPIバージョンまでの機能をアプリ内で利用することができる。
例:compileSdkVersion 22
バージョンにないメソッドを使おうとするとビルドできないです。
次の場合はエラーになる(見本)
compileSdkVersion 19
にして、Lollipop(API Level 21)のメソッドを使おうとするとエラーが出てビルドできません
- SDK ManagerでそのバージョンのSDK Platformがインストールされている必要があります
buildToolsVersion
アプリビルドの際のコンパイラのバージョンのこと。
(SDKビルドツールのバージョンの指定。)
例:buildToolsVersion "19.1.0"
これが低いとmultidexなどの機能が利用できないなどがあるようです
Android Studio 3.0.0以降は必須ではなくなっていて、指定しない場合は使用しているpluginが必要とする内で一番高いバージョンが使われる。
- コンパイラのバージョンなので、compileSdkVersionを上げた時は一緒に上げる必要がある。
エラーを回避する方法
compileSdkVersionを21に設定していたとしても、APIレベル21の機能を使わない限りはAPIレベルが21未満の端末上でもアプリは動作する。
minSdkVersin <= compileSdkVersion
かつcompileSdkVersionの機能をアプリ内で使う
場合は下記のように条件分岐で対応すると良いっぽい。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.L) {
// ここはLollipop(Android 5.0)以降で実行される。
} else {
// こっちはKitKat(Android 4.4)以前。
}
まとめ
今回はcompileSdkVersion とbuildToolsVersion の違いについてお伝えしました。
※プログラミングは習得中ですので、参考程度に記事を読んでください。
参考はこちら