Как ссылаться на внешнюю банку в проекте библиотеки Android в Eclipse
О, Android. Как я люблю ваши слова.
У меня есть рабочее пространство с несколькими проектами. App1 и App2 - это приложения для Android. Common - это проект библиотеки Android. App1 и App2 зависят от Common (связаны через вкладку Android).
Common имеет некоторые внешние зависимости, а именно: httpmime и apache-mime4j, которые существуют как файлы jar.
По какой-то причине кажется, что мне нужно добавить мои mime jars в путь сборки App1 и App2 для успешной компиляции. Это кажется действительно глупым. В обычной Java я бы добавил Common в путь сборки App1 и App2, и все будет работать. Ожидается ли, что я должен добавить свои банки в каждое приложение для Android?
-Andy
Примечание. Если я не настрою путь сборки, как описано выше, я получаю "Тип org.apache.james.mime4j.message.SingleBody не может быть разрешен. Он косвенно ссылается на требуемые файлы .class | DataCallUtil. java |/App1/Common/util | строка 364"
Ответы
Ответ 1
Я думаю, что омермухаммед и Амит не поняли, что Виссер говорит о проекте Android Library.
Для этого проекта я не думаю, что можно создать банку. (jar не имеет ничего общего со всеми ресурсами Android-ресурсов).
Из моего опыта работы с Android Library Project этот проект - это, в основном, источники и исходные материалы, которые готовы к включению в другой проект.
Но настройки не являются частью пакета, поэтому вам нужно включить библиотеки для каждого приложения.
По моему опыту, эта настройка не часто меняется, поэтому это не так уж плохо.
Проект библиотеки Android по-прежнему не идеален, но по-прежнему является большим улучшением от того, что было раньше (т.е. ничего).
Ответ 2
Чтобы увеличить ответ omermuhammed, если общий проект не является тем, который часто менялся, создание фляги и использование ее в других проектах является хорошим решением.
Чтобы создать банку, щелкните правой кнопкой мыши проект в файле Eclipse → Export → Java → JAR, затем выберите папки, которые вы хотите включить в JAR, в вашем случае я предполагаю, что это включает в себя папки gen и libs ( libs является папкой с httpmime и apache-mime4j JARS), но, вероятно, ни res, ни корневой каталог вашего проекта (с такими файлами, как AndroidManifest.xml, которые вызовут проблемы с тем же файлом в зависимых проектах).
Ответ 3
Попробуйте скомпилировать Common проект в банку и добавить его как внешнюю банку в ваши проекты App1 или App2.