サポートライブラリのバージョンスキームと、どのバージョンをいつ使用するかを理解するのに問題があります。現在、compileSdkVersion 21
、minSdkVersion 21
、およびtargetSdkVersion 21
を含むプロジェクトがあり、Androidデザインサポートライブラリを使用します。com.Android.support:design:22.2.0
を使用する場合プロジェクトはコンパイルされますが、Gradleの警告が表示されます。
"This support library should not use a different version (22) than the `compileSdkVersion` (21)".
com.Android.support:design:23.0.1
を使用すると、次のようなコンパイルエラーが発生します。
"Error:(2) Error retrieving parent for item: No resource found that matches the given name 'Android:TextAppearance.Material.Widget.Button.Inverse'.
compileSdkVersion
がそれ以下である限り、常に最新バージョンのサポートライブラリを使用できると思いましたが、それは間違っているようです。
APIレベル21に対してコンパイルするときにデザインサポートライブラリを使用できますか?
サポートライブラリは、compileSdkVersion
またはtargetSdkVersion
が小さい場合でも、常にminSdkVersion
と一致する必要があります。デザインライブラリを使用する場合は、compileSdkVersion
を少なくとも22に設定し、ライブラリバージョン22.2.0に設定する必要があります。
その理由は簡単です。ライブラリのバージョンは、ビルドされたAndroid SDKのバージョンを反映しています。compileSdkVersion
よりも高いレベルのサポートライブラリを使用しようとすると、新しいバージョンで追加されたリソースを見つけます。
次のいずれかを使用できます。
_//You have to use compileSdkVersion=22
compile 'com.Android.support:design:22.2.0'
compile 'com.Android.support:design:22.2.1'
//You have to use compileSdkVersion=23
compile 'com.Android.support:design:23.3.0'
compile 'com.Android.support:design:23.2.1'
compile 'com.Android.support:design:23.2.0'
compile 'com.Android.support:design:23.1.1'
compile 'com.Android.support:design:23.1.0'
compile 'com.Android.support:design:23.0.1'
compile 'com.Android.support:design:23.0.0'
_
デザインライブラリはappcompat-v7ライブラリと依存関係があります。
あなたapi 22でコンパイルしたv23.0.xバージョンは使用できません(これは"Error:(2) Error retrieving parent for item: No resource found that matches the given name 'Android:TextAppearance.Material.Widget.Button.Inverse'
の理由です。
また、設計ライブラリの最初のバージョンは22であるため、-使用できません compileSdk = 21です。