Могу ли я установить targetSdkVersion меньше, чем minSdkVersion?

Мне нужны функции из Android API-уровня 11, но если я установлю targetSdkVersion равным 10, то получу нужные мне меню в старом стиле (с помощью кнопки меню). Являются ли эти значения "легальными" для установки, или targetSdkVersion должен быть выше или равен minSdkVersion?

(Примечание: кажется, работает!)

2 ответа

Как говорится в документе о android:targetSdkVersion,

Целое число, обозначающее уровень API, на который нацелено приложение. Если не установлено, значение по умолчанию равно значению, данному minSdkVersion. Этот атрибут информирует систему, которую вы протестировали с целевой версией, и система не должна разрешать какие-либо действия совместимости, чтобы поддерживать прямую совместимость вашего приложения с целевой версией. Приложение все еще может работать на более старых версиях (вплоть до minSdkVersion).

В любом случае,targetSdkVersion всегда должно быть больше или равно minSdkVersionпотому что ваше приложение никоим образом не может работать ниже minSdkVersion, Если вы поставили targetSdkVersion меньше чем minSdkVersion это означает, что вы говорите системе Android, что вы проверили это приложение на targetSdkVersion, но это невозможно (поскольку ваше приложение может работать на устройствах с минимальной minSdkVersion).

Отсюда противоречие targetSdkVersion всегда должно быть больше, чем равно minSdkVersion,

Всегда делайте targetSdkVersion больше чем равно minSdkVersion,

Вы можете обойти android:targetSdkVersion версия и использование функции для определенного уровня API. Наилучшим способом решения этой проблемы было бы программно определить версию устройства во время выполнения и перейти к конкретной реализации API, а не указывать жестко закодированное значение.

Посмотреть здесь,

  // Make sure we're running on Honeycomb or higher
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        // set the new menu styles
    } else {
      // do nothing and it will show the default theme
}

Проверьте официальную документацию здесь,

http://developer.android.com/training/basics/supporting-devices/platforms.html

Другие вопросы по тегам