Библиотеки больше не добавляются в APK после обновления до ADT 22

224

У меня довольно большой проект приложений для Android, который ссылается на несколько проектов библиотеки. Все было нормально, пока я не обновил плагин Eclipse ADT до последней версии (v22). Конечно же, я обновил SDK. Я не вижу ошибок компиляции в eclipse, но когда я запускаю проект на телефоне, я получаю NoClassDefFoundError.

java.lang.NoClassDefFoundError: org.acra.ACRA
....

Библиотека arca включена в один из проектов библиотеки ссылок (в папке libs), и я могу увидеть ее в "Частных библиотеках Android" в проводнике пакетов, также, как я уже сказал, никаких ошибок компиляции. Проект отлично работает на всех компьютерах, которые не обновили ADT.

Я уже пробовал целую кучу вещей, включая, но не ограничиваясь:

  • переустановите SDK для Android.
  • скачать новый пакет ADT
  • удалить весь мой код и получить его снова из git
  • скопируйте соответствующую библиотеку в проект приложения
  • закомментируйте код, который использует эту библиотеку - я просто получаю ту же ошибку для следующей библиотеки

все без каких-либо успехов, поэтому я действительно отчаянный здесь.

Я был бы очень рад, если бы кто-нибудь мог дать мне подсказку о том, как решить эту проблему.

Теги:
adt

7 ответов

321
Лучший ответ

Котировки улиц Бостона из его сообщение adt-dev:

При обновлении "Заказ и экспорт" нового "Android Private" Библиотеки не всегда проверяются. И андроид-поддержка-v4.jar теперь находится в это раздел "Частные библиотеки Android".

Чтобы исправить это, перейдите в раздел "Заказ и экспорт" и установите флажок "Android Private Библиотеки. Затем обновите/очистите/перестройте.

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

Дайте этот снимок и, если повезет, он решит вашу проблему.

Изображение 6797

  • 0
    Ура для частной библиотеки, разработчики Maven ждали этого так долго :)
  • 32
    CommonsWare, как всегда, один из первых пионеров, большое спасибо! :)
Показать ещё 25 комментариев
10

Просто проверить личные библиотеки Android было недостаточно, мне также пришлось установить Android SDK Build-tools в Android SDK Manager.

  • 0
    Я не могу подтвердить, что это требуется, но я не получил ошибку, с которой столкнулся SimonSays перед установкой. Для этого может потребоваться только правильная установка флажков экспорта, как описано выше, но я должен упомянуть, что в процессе установки я установил Инструменты сборки.
  • 0
    это работает для меня. недостаточно только изменить настройки eclipse. Возможно, вам придется проверить установленные инструменты сборки в Android SDK Manager.
4

Я столкнулся с аналогичной проблемой, потраченной около 3 часов, но ни одно из предлагаемых здесь решений не помогло... Наконец, я нашел источник проблемы: мои файлы проекта и project.properties были доступны только для чтения. Eclipse просто молча игнорирует любые изменения в библиотечных зависимостях, когда я делаю это в графическом интерфейсе!

4

У меня была та же проблема, и мой adt был 22.0.1. И ни одно из вышеприведенных решений не работало. Кроме того, при добавлении проекта внешней библиотеки в рабочий проект. Я всегда проверяю папку gen рабочего проекта и если R проекта внешней библиотеки есть (вместе с именем пакета), тогда экспортируется только проект внешней библиотеки. И в моей папке gen была показана не packagename внешней библиотеки.

Итак, я проверил файл project.properties и не было никакой ссылки на внешнюю библиотеку, присутствующей android.library.reference.1=. Поэтому я вручную добавил туда ссылку на внешнюю библиотеку, хотя я добавил из project->properties->Java Build Path->Projects->Add. Поэтому вручную редактирование project.properties выполнило всю работу для меня.

Изображение 6798

  • 1
    Я думаю, что это произошло, поскольку место для установки android.library.reference.n в GUI - это не java build path , а project -> properties -> Android -> Library -> Add... Гоча .
3

У меня была та же проблема. Это было из-за проекта затмения. Чтобы решить эту проблему, я создал новый проект в eclipse, скопировал в него существующие классы и ресурсы проекта, а затем снова запустил eclipse и добавил, что мой заказ включает.

  • 1
    Слишком много хлопот, решение CommonsWare сработало для меня, и я считаю, что оно сработало бы и для вас.
2

У меня была аналогичная проблема, и мой ответ немного отличается от CommonsWare. Вот мой снимок экрана:

Изображение 6799

После проверки, что libs в моей сборке снова начал работать.

  • 2
    Я был бы осторожен с этим решением. Android Dependencies были заменены Android Private Libraries и могут существовать только по устаревшим причинам. Я думаю, это может быть удалено в любое время.
0

У меня также была та же проблема,

i) добавить gson lib в качестве реферирования librairies
ii) проверить его в java Build Path Изображение 6800

Ещё вопросы

Сообщество Overcoder
Наверх
Меню