Как я могу использовать библиотеку, созданную для Android выше 1.6, но ориентированную на 2.3.3? - PullRequest
0 голосов
/ 19 сентября 2011

Я пытаюсь использовать библиотеку Android в своем проекте, но у меня проблема с минимальной версией SDK и целевой версией SDK.Библиотека, о которой я говорю, это этот ActionBar .В файле readme говорится, что "Этот проект направлен на обеспечение многократно используемого компонента панели действий для Android 1.6 и до 3.0" .

Я хочу нацелить свое приложение на 1.6 (если это произойдетчтобы получить более высокие API, я изменю его, когда потребуется), и поэтому я создал проект Eclipse для ActionBar с целью сборки как API Level 4 (1.6).Несмотря на то, что для библиотеки minSdkVersion установлено значение 4 (а для targetSdkVersion установлено значение 10), проект не компилируется.Точнее, есть три ошибки, которые, по моему мнению, относятся к API уровня 10 (2.3.3), по крайней мере одну из них я точно знаю, потому что она пытается использовать Build.VERSION_CODES.GINGERBREAD, которого нет на уровне API 4.

Почему библиотека поддерживает "Android 1.6 и до 3.0" и даже не компилируется с 1.6 в виду, потому что она использует вещи из более высокого API?

Отлично Iподумал, давайте установим уровень API на 10 и посмотрим, что произойдет.Ошибки исчезли, и теперь у меня просто есть предупреждение, как этот .Я могу с этим смириться, это не так уж важно (но если есть какой-то способ удалить это из Eclipse, дайте мне знать, пожалуйста).

Затем я создал свой проект, ориентированный на 1.6, я добавил библиотеку в свой проект, но яне могу скомпилировать / запустить его, потому что здесь также применимы те же ошибки, что и выше.

Как я могу обойти это?Если библиотека предположительно поддерживает "Android 1.6 и до 3.0" , как я могу использовать мой проект, ориентированный на Android 1.6?

Ответы [ 2 ]

1 голос
/ 20 сентября 2011

Я не знаком с библиотекой, о которой вы говорите, но думаю, что вы не до конца понимаете разницу между установкой цели сборки / компиляции и минимальной версией SDK. Вполне нормально установить свойства вашего проекта для сборки против v10 и targetSdk до 10, а затем минимум до 4. Если библиотека написана правильно, то она останется совместимой со старыми версиями. Это будет сделано путем проверки, какая версия Android работает, прежде чем пытаться получить доступ к API, которых нет в более старых версиях. Однако, если для свойств проекта не установлено значение 10, он не будет знать, что делать, если он работает на более «современной» версии Android.

Вы можете увидеть соответствующее обсуждение настроек minSdk и targetSdk в моем другом ответе здесь .

0 голосов
/ 20 сентября 2011

Попробуйте изменить Build.VERSION_CODES.GINGERBREAD на Build.VERSION_CODES.DONUT. Не уверен, зачем вам нужна проверка Build.VERSION_CODES.GINGERBREAD, если вы нацеливаетесь на 1.6

...