20

我无法理解支持库的版本方案以及何时使用哪个版本。目前我有一个项目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 进行编译时,我可以使用设计支持库吗?

4

2 回答 2

31

compileSdkVersion即使targetSdkVersionminSdkVersion较低,支持库也应始终匹配。如果要使用设计库,则需要设置compileSdkVersion为至少 22 和库版本 22.2.0。

原因很简单。该库的版本反映了针对它构建的 Android sdk 的版本。如果您尝试使用比它更高级别的支持库版本,compileSdkVersion它可能找不到在更高版本中添加的资源。

于 2015-10-05T00:27:40.837 回答
19

您可以使用以下之一:

//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。

于 2015-10-05T07:01:03.880 回答