设计支持库 - 在SDK v21中使用哪个版本?

20
我不理解支持库的版本方案以及何时使用哪个版本。我有一个项目,compileSdkVersion 21minSdkVersion 21targetSdkVersion 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,因此为21。 - Kane O'Riley
2个回答

31

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

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


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库。
如果使用v23.0.x版本编译api 22,会导致错误"Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'

另外,由于设计库的第一个版本是22,不能使用compileSdk=21。


1
我在哪里可以查看特定支持库的所有版本? - Bharat Dodeja
1
@BharatDodeja 这里是完整的列表:http://developer.android.com/tools/support-library/index.html - Gabriele Mariotti

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接