Библиотеки больше не добавляются в APK после обновления до ADT 22
У меня есть довольно большой проект Android App, который ссылается на несколько библиотечных проектов. Все было хорошо, пока я не обновил плагин eclipse ADT до последней версии (v22). Я также обновил SDK, конечно. Я не вижу никаких ошибок компиляции в Eclipse, но когда я запускаю проект по телефону, я получаю NoClassDefFoundError.
java.lang.NoClassDefFoundError: org.acra.ACRA
....
Библиотека arca включена в один из упомянутых проектов библиотеки (в папке libs), и я вижу ее в "Частных библиотеках Android" в проводнике пакетов, также, как я уже сказал, ошибок компиляции нет. Проект отлично работает на всех остальных компьютерах, которые не обновляли ADT.
Я уже перепробовал целый ряд вещей, включая, но не ограничиваясь:
- переустановите Android SDK
- скачать свежий комплект ADT
- удалите весь мой код и получите его снова из git
- скопировать нужную библиотеку в проект приложения
- закомментируйте код, который использует эту библиотеку - я просто получаю ту же ошибку для следующей библиотеки
все без какого-либо успеха, так что я действительно отчаялся здесь.
Я был бы очень рад, если бы кто-нибудь дал мне подсказку о том, как решить эту проблему.
7 ответов
Цитирую улицы Бостона из его поста adt-dev:
При обновлении не всегда проверяется "Заказ и экспорт" новых "Частных библиотек Android". И android-support-v4.jar теперь находится в этом разделе "Частные библиотеки Android".
Чтобы это исправить, перейдите в раздел "Заказ и экспорт" и установите флажок "Частные библиотеки Android". Затем обновите / очистите / восстановите.
После того, как вы сделали это "исправление" для библиотечного проекта, вам может потребоваться просто закрыть и снова открыть любой зависимый проект, потому что они могут не увидеть это "исправление" сразу.
Дайте этому шанс, и если повезет, это решит вашу проблему.
Недостаточно просто проверить частные библиотеки Android, мне также пришлось установить инструменты сборки Android SDK в Android SDK Manager.
У меня была такая же проблема, и мой adt
было 22.0.1
, И ни одно из вышеуказанных решений не сработало. Далее при добавлении проекта внешней библиотеки в рабочий проект. Я всегда проверяю gen
папка рабочего проекта и если R
внешнего проекта библиотеки (вместе с именем пакета), то экспортируется только внешний проект библиотеки. И на моем gen
папка № packagename
внешней библиотеки.
Итак, я проверил на project.properties
файл и не было никакой ссылки на внешнюю библиотеку android.library.reference.1=
подарок. Поэтому я вручную добавил ссылку на внешнюю библиотеку, хотя я и добавил project->properties->Java Build Path->Projects->Add
, Так что вручную редактировать project.properties
сделал всю работу за меня.
Я столкнулся с подобной проблемой, провел около 3 часов, но ни одно из предложенных здесь решений не помогло... Наконец-то я нашел источник проблемы: мои файлы проекта и project.properties были только для чтения. Eclipse просто тихо игнорирует любые изменения в библиотечных зависимостях, когда я делаю это в графическом интерфейсе!
У меня такая же проблема. Это было из-за проекта затмения. Чтобы решить эту проблему, я создал новый проект в eclipse, скопировал в него существующие классы и ресурсы проекта, а затем снова запустил eclipse и добавил свои пользовательские включения.
У меня была похожая проблема, и мой ответ немного отличается от ответа CommonsWare. Вот мой скриншот:
После проверки libs обратно в моей сборке снова начал работать.
У меня была такая же проблема,
i) добавить библиотеку gson в качестве референдумных библиотек
II) проверить это в Java Build Path