mitaichik
@mitaichik

Что такое compileSdkVersion и targetSdkVersion?

Всем привет! Подскажите что значат compileSdkVersion и targetSdkVersion? И как их правильно задавать?

У меня вот такие настройки:
minSdkVersion 9
compileSdkVersion 21
targetSdkVersion 20
buildToolsVersion '21.0.1'

Ну понятно что compileSdkVersion это версия на которой компилится проект. Но если у телефона версия ос меньше или больше - приложение будет работать? Тот же самый вопрос по targetSdkVersion.

Плюс Android Studio начал ругаться на

compile 'com.android.support:support-v4:20.+'
compile 'com.android.support:appcompat-v7:20.+'

Мол версия пакетов меньше чем compileSdkVersion. Раньше не ругалась.... Это нормально? Потому что когда я делаю версию пакетов 21 оно мне весь экшнбар ломает....

Заранее спасибо!
  • Вопрос задан
  • 8404 просмотра
Решения вопроса 1
@MarkusD
все время мелю чепуху :)
Версии Android API обратно совместимы в определенных пределах. Это буквально означает что можно собрать приложение для Android 4.4.2 (targetSdkVersion == 19) используя Android API с версией 22 (compileSdkVersion == 22). При этом, на твои руки полностью ложится ответственность за предотвращение вызовов новых функций из Android 5.1.1 на более древних платформах. Иначе приложение упадет, автозатычек ни кто не предоставляет.
Поэтому, да, можно пользоваться свежими версиями Android API для сборки под старые версии ОС Android.

Относительно предупреждений о разных версиях, у тебя compileSdkVersion указана строго, а вот пакет "com.android.support" имеет гибкую зависимость на повышение версии. Скорее всего ты уже закачал свежие API для Android 5/6, из которых теперь и берется пакет "com.android.support" при сборке.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы