Подтвердить что ты не робот

Добавление библиотек поддержки в Android-проект

Почему мне так тяжело попасть в разгадку разработки Android? Я развиваюсь на разных языках на протяжении многих лет и по какой-то причине просто не могу выходить за рамки "jeez-i-still-feel-a-total-noob" с Android.

Итак, я пытаюсь добавить панель действий в свой Android 2.3.3 проект. Нет проблем, не так ли? На сайте разработчиков Android есть хорошая и понятная статья, в которой объясняется, как это сделать. Конечно, это связано с добавлением библиотеки поддержки appcompat v7. Нет проблем, даже это описано поэтапно на этой странице. Но, как и почти все такие упражнения в Android, я нахожу, что вы можете делать именно то, что говорит вам страница, но по-прежнему не будет работать без значительного количества Googling, чтобы исправить ошибки, с которыми вы столкнулись впоследствии.

Итак, я выполнил шаги, описанные в разделе "Использование Eclipse" в разделе "Добавление библиотек с ресурсами" в приведенной выше ссылке. Первая ошибка, которую я получаю, - Невозможно разрешить целевой "android-16" . Нет проблем, я мог бы понять сам, но мне любопытно, есть ли что-нибудь в документах, которые я следил, что предложило бы мне, чтобы мне был установлен Android 4.1.2 (API16)? Я только что прочитал это или я должен был знать сам, что, чтобы делать то, что я пытаюсь сделать, мне понадобится API16?

Ничего, по крайней мере, я могу это исправить, но потом у меня возникла новая проблема. Как только я добавлю библиотеку android-support-v7-compat в свой проект и нажмите кнопку OK, консольный выход загорится с ошибками, первый из которых будет выглядеть следующим образом:

C:...\Android-поддержка-v7-AppCompat\Рез\значения-v14\styles_base.xml: 24: Ошибка: ошибка получения родительского элемента: ресурс не найден соответствует имени 'android: Widget.Holo.ActionBar'.

а остальные 60 нечетных ошибок похожи, но для разных заданных имен.

Я был бы очень признателен, если бы кто-нибудь мог помочь мне здесь. Очевидно, я хотел бы знать, как решить эту конкретную проблему, но если бы кто-нибудь мог дать мне несколько советов о том, как преодолеть этот очень расстраивающий этап изучения этой новой среды разработки, я был бы так благодарен. Что я должен был сделать по-другому, чтобы не сталкиваться с такими ошибками, кроме как шаг за шагом следовать инструкциям на веб-сайте разработчиков Android?

4b9b3361

Ответ 1

ОК, я думаю, я должен опубликовать ответ, поскольку мне в конечном итоге удалось решить мою собственную проблему.

Оказывается, мне нужно использовать цель сборки Android 4.2.2, независимо от того, что я специально разрабатываю для Android 2.3.3 - я имею в виду, что я использую библиотеки поддержки в конце концов. Я предполагаю, что возможно, что еще одна более низкая цель (но выше 2.3.3) будет работать, я просто использовал самую высокую, которую я установил, и решил проблему.

Как я должен был знать это, следуя пошаговым инструкциям на веб-сайте Android Developers, это загадка для меня. Причина, по которой я решил попробовать изменить targetSdkVersion, была из-за заключительного раздела на странице указанной в вопросе. В нем говорится: "Если вы увеличиваете обратную совместимость своего существующего приложения с более ранней версией Android API с помощью библиотеки поддержки, обязательно обновите манифест приложения". Теперь я не увеличиваю обратную совместимость моего существующего приложения. Я меняю существующее приложение, которое предназначено для 2.3.3, чтобы иметь возможность включить панель действий (похоже, это скорее "передовая совместимость" ). Я попробовал обновить targekSdkVersion, хотя, поскольку я был вне идей, и вот, он работал.

Ответ 2

Не знаю, помогает ли это вам вообще, но я несколько часов боролся с подобной проблемой и, наконец, смог ее решить. В моем случае, внутри моего собственного файла styles.xml проекта, я неправильно ссылался на стиль AppCompat в родительском атрибуте.

Я использовал:

<style name="AppBaseTheme" parent="android:Theme.AppCompat">

где я должен был использовать:

<style name="AppBaseTheme" parent="@style/Theme.AppCompat">

Моя ошибка была в ссылке на тему.

Ответ 3

Я обнаружил, что установка целевой Android для 2.3.3 для проекта библиотеки android-support-v7-appcompat решает эту проблему. Вам не нужно устанавливать цель проекта выше, но цель библиотеки ниже.

Ответ 4

Вы определили весь важный документ и соответствующий раздел "Добавление библиотек с ресурсами":

http://developer.android.com/tools/support-library/setup.html

Ошибка говорит о том, что ваш проект не может найти эти ресурсы. Дважды проверьте следующее:

  • Вы проверили "библиотека" в проекте библиотеки

  • Вы экспортировали банки в ПРОЕКТЕ БИБЛИОТЕКИ, как описано в этом разделе

  • Вы добавили проект библиотеки в качестве ссылки на проект приложения

  • Вы добавили android-support-v4.jar в свою папку libs в своем проекте приложения

Если все это определенно правильно, проверьте eclipse для любых сообщений об ошибках - это проект библиотеки или проект приложения, который загорается, как пресловутая Рождественская елка?

Ответ 5

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

Невозможно разрешить целевой "android-16"

Убедитесь, что вы установили API16, эти ошибки возникают, если вы указали в своих манифестах ваши целевые диски 16 в манифесте, пока не установлен sdk для API16. Вы можете либо установить API, либо изменить targetApi вашего проекта на минимальную требуемую версию, для используемой библиотеки поддержки. Я думаю, что API 11 - это минимальная требуемая версия для Android.

андроида: Widget.Holo.ActionBar

Эта ошибка также должна быть исправлена ​​после того, как targetdk будет зафиксирован в вашем проекте. Поскольку для использования Holo.ActionBar вам нужно настроить ваш проект на минимально поддерживаемый уровень api, т.е. 11 или выше.

Ответ 6

Я встретил подобные проблемы. Использование API 18, ADT.

Чтобы решить проблему "Не удалось решить задачу" android-16, я удаляю проект lib lib и повторяю то, что говорит учебник.

Тогда я обнаружил, что не могу "добавить" библиотеку в свой проект. (Команда "В панели" Библиотека "нажмите" Добавить ". там не так подробно. 1. В вашем проекте → свойства → путь сборки Java → Библиотеки → Добавить библиотеку... → Контейнер для классов Android → Выберите проект lib 2. В вашем проекте → свойства → Android → добавить... → выберите lib → apply

веселит

Ответ 7

Вот как я избегал ошибки: "Не удалось разрешить целевую" андроид-16 "при добавлении v7.

Во-первых, я выполнил инструкции по добавлению библиотек поддержки с ресурсами в eclipse. После шага 4 я нажал кнопку "Готово". Это когда я увидел сообщение об ошибке, android-support-v7-appcompat] Не удалось разрешить целевой "android-16".

Во-вторых, я прочитал этот пост. Я также открыл диспетчер загрузки, но ничего не обновлял. Чтобы убедиться, что я выполнил все шаги как можно точнее, я удалил проект android-support-v7-appcompat и начал работу.

Во второй раз я не проверял разные коробки. Но на шаге 4 у меня также не было ошибок. Кто может сказать, почему?

Спасибо, Девальд, ты выразил в этом вопросе такое же разочарование, какое у меня есть. Является ли опыт единственным выходом?

Ответ 8

Если некоторые из ваших xml файлов ресурсов не могут найти соответствующие ссылки в AppCompat, убедитесь, что вы также добавили библиотеки поддержки в свои свойства проекта. Вы делаете это:

1.), щелкнув правой кнопкой мыши на проекте в проекте

2.) Выберите свойства. (Внизу меню)

3.) щелкните Android в меню левой стороны нового всплывающего окна

4.) В разделе "Библиотеки" нажмите кнопку "Добавить"

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

6.) Как только появится зеленая галочка рядом с нужными библиотеками, убедитесь, что опция "Является библиотекой" в разделе библиотек НЕ выбрана.

7.) Нажмите "Применить".

8.) Закройте всплывающее меню.

Если это не сработает, сообщите мне, и я могу вам помочь. Я потратил три часа на проблему, поэтому я знаю почти все возможные вещи, которые могут пойти не так, как надо.

Ответ 9

Перейдите в Project → снимите флажок Build Automatically

Перейдите в Project → Clean..., очистите проект библиотеки и проект приложения

Экспортируйте ваше приложение в качестве подписанного APK, пока функция Build Automatically все еще отключена.