Я очень смущен добавлением внешних файлов .jar в мой проект.

Я загрузил проект библиотеки https://github.com/chrisbanes/Android-PullToRefresh.

После импорта в Eclipse я очистил и построил его.

После этого в папке bin / проекта библиотеки находится файл .jar.

Затем я скопировал этот файл .jar в каталог / libs моего проекта, из которого я хочу ссылаться на него.

Насколько я понял, отныне нет необходимости хранить проект библиотеки в моем рабочем пространстве, потому что я добавил в свой проект файл .jar.

Изображение дерева проектов: https://www.dropbox.com/s/7w4tzis8v1vv4aj/jarProblem.png

Когда я запускаю ссылочный проект с открытым проектом библиотеки: нет проблем.

Как только я закрываю проект библиотеки: NullPointerException <- кажется, не находит библиотеку.

Я уже пробовал все возможные комбинации конфигурации пути сборки, но я не могу собрать свой основной проект с закрытым проектом pulltorefresh.

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

Он должен работать так же, как android-support-v4.jar ... для которого у меня тоже нет исходного кода.

Что мне здесь не хватает? Спасибо.

1
CodingMeSwiftly 6 Июл 2013 в 01:28

1 ответ

Лучший ответ

Есть разница между файлом jar и проектом библиотеки.

Файлы Jar могут содержать только код, а не ресурсы Android. Их просто нужно поместить в папку ваших библиотек и связать с ними.

Проекты библиотеки могут содержать ресурсы Android. Они должны быть скомпилированы как библиотеки Android в Eclipse и сохранены как отдельный проект. Затем вы сообщаете своему основному проекту, что он ссылается на этот. Необходимо поддерживать проект библиотеки, потому что он должен создавать из него файлы / gen, чтобы ваши ресурсы были правильными. Он также должен иметь возможность получать содержимое папки с ресурсами.

Учитывая, что в этой библиотеке есть папка res, это проект библиотеки Android, и его нельзя использовать в качестве простого jar-файла.

3
Gabe Sechan 6 Июл 2013 в 01:33