Версия сборки проекта библиотеки выше, чем у проектов, использующих ее - PullRequest
7 голосов
/ 11 марта 2012

Я использую Android Library Project. Я установил цель сборки проекта моей библиотеки, чтобы сказать 11, чтобы использовать api 11 и иметь прямую совместимость, и я устанавливаю проверку для минимальной версии SDK, чтобы приложение не зависало при запуске на ОС <11 </p>

В других моих проектах цель сборки установлена ​​на 8, поэтому я хочу знать, является ли правильный способ установить версию сборки библиотечного проекта выше, чем проекты с более низкой целью сборки, которые будут ее использовать?

сейчас я не наблюдал ни одной аварии. Просто хотел знать, можно ли использовать библиотеку с более высокой версией сборки в проектах с более низкой версией сборки SDK, чем библиотека.

Заранее спасибо .:)

Ответы [ 4 ]

7 голосов
/ 12 марта 2012

Вероятно, это выполнимо путем ветвления проверки версии SDK на уровне кода, например, если android.os.Build.VERSION.SDK_INT <11, тогда не запускайте это, но не рекомендуется <a href="http://developer.android.com/guide/developing/projects/index.html#considerations" rel="noreferrer"> dev guide :

Версия платформы должна быть ниже или равна проекту Android

Библиотека компилируется как часть проекта зависимого приложения, поэтому API используется в проекте библиотекидолжен быть совместим с версией библиотеки Android, используемой для компиляции проекта приложения.Как правило, проект библиотеки должен использовать уровень API, который равен или ниже уровня, используемого приложением.Если в проекте библиотеки используется уровень API выше уровня приложения, проект приложения не будет компилироваться.Вполне приемлемо иметь библиотеку, которая использует API Android 1.5 (уровень API 3) и которая используется, например, в проектах Android 1.6 (уровень API 4) или Android 2.1 (уровень API 7).

3 голосов
/ 20 декабря 2015

Вы можете использовать библиотеку, поддерживающую более высокое значение minSdkVersion, чем в вашем проекте. Для этого в файле манифеста ваших проектов добавьте tools:overrideLibrary="<libraries packagename>" элемент manifest -sdk

<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="23" tools:overrideLibrary="<libraries packagename>" />

1 голос
/ 12 марта 2012

Использование библиотеки с более высоким уровнем API, чем у приложения, не рекомендуется.Если вы ссылались на какие-либо функции API 11 только в библиотеке, а затем использовали API 8 для компиляции с вашим приложением, то оно вообще не должно компилироваться.У вас есть ссылки на API 11 в коде вашей библиотеки?

См. Документы для Android :

В общем, проект библиотеки должен использовать уровень API, которыйтакой же как - или ниже чем - используемый приложением.Если в проекте библиотеки используется уровень API выше уровня приложения, проект приложения не будет компилироваться.

0 голосов
/ 06 мая 2019

в своем манифесте вы можете просто добавить:

<uses-sdk
      tools:overrideLibrary="<libraries packagename>"
    />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...