Библиотека поддержки проектирования - какая версия для использования с 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.