web-dev-qa-db-ja.com

設計サポートライブラリ-SDK v21で使用するバージョン

サポートライブラリのバージョンスキームと、どのバージョンをいつ使用するかを理解するのに問題があります。現在、compileSdkVersion 21minSdkVersion 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に対してコンパイルするときにデザインサポートライブラリを使用できますか?

20
Matthias Preu

サポートライブラリは、compileSdkVersionまたはtargetSdkVersionが小さい場合でも、常にminSdkVersionと一致する必要があります。デザインライブラリを使用する場合は、compileSdkVersionを少なくとも22に設定し、ライブラリバージョン22.2.0に設定する必要があります。

その理由は簡単です。ライブラリのバージョンは、ビルドされたAndroid SDKのバージョンを反映しています。compileSdkVersionよりも高いレベルのサポートライブラリを使用しようとすると、新しいバージョンで追加されたリソースを見つけます。

31
phxhawke

次のいずれかを使用できます。

_//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です。

19