Библиотека поддержки проектирования - какая версия для использования с SDK v21

У меня возникают проблемы с пониманием схемы версий библиотек поддержки и когда использовать эту версию. В настоящее время у меня есть проект с 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?

Ответы

Ответ 1

Библиотека поддержки должна всегда соответствовать compileSdkVersion, даже если targetSdkVersion или minSdkVersion ниже. Если вы хотите использовать библиотеку дизайна, вам нужно установить compileSdkVersion не менее 22 и версию библиотеки 22.2.0.

Причина этого проста. Версия библиотеки отражает версию Android sdk против нее. Если вы попытаетесь использовать версию библиотеки поддержки более высокого уровня, чем compileSdkVersion, она может не найти ресурсы, которые были добавлены в более позднюю версию.

Ответ 2

Вы можете использовать один из следующих вариантов:

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