Как экспортировать фляги из библиотечного проекта в ссылочные проекты в Eclipse? - PullRequest
10 голосов
/ 18 июля 2011

Несколько проектов Android используют проект библиотеки Android. Теперь я добавил JAR (commons-lang.jar) в этот библиотечный проект. Я хочу экспортировать этот файл commons-lang.jar во все проекты, которые используют проект библиотеки. Я не могу заставить его работать без дублирования jar для всех ссылочных проектов.

Что я сделал до сих пор:

  1. Создана папка с именем libs в иерархии папок проектов библиотеки.
  2. Скопировал JAR в эту папку libs.
  3. Добавлен этот JAR-файл в Eclipse «Путь сборки Java» с «Добавить внешние JAR-файлы ...» в проект библиотеки.
  4. На вкладке «Заказ и экспорт» установите флажок слева от JAR для его экспорта.
  5. О ссылочном проекте на странице «Android» в библиотеке «Добавить» проекта библиотеки.

Кажется, что JAR-файл commans-lang не экспортируется вместе с проектом библиотеки. Мне также нужно создать папку libs в ссылочном проекте, добавить те же JAR-файлы в путь сборки ссылочного проекта. После этого все работает, но APK содержит этот внешний JAR дважды.

Что не так с моим подходом? Что мне делать дополнительно?

Большое спасибо заранее.

Ответы [ 4 ]

1 голос
/ 04 июня 2012

Что бы я сделал:

Начните с нуля (удалите все ссылки на проекты и ссылки JAR, созданные вами из-за этой проблемы).Создайте новый проект библиотеки Android.Поместите банку в папку libs этого проекта.Пусть все проекты, для которых вам нужен jar, ссылаются на проект библиотеки.Это должно работать.

1 голос
/ 02 июня 2012

Я попробовал то же самое, используя файл gson.jar.

  • Я поместил копию gson jar в проект TestAndroidLib и установил путь сборки Java, чтобы включить его.
  • Я добавил ссылку на этот проект TestAndroidLib в TestAndroidApp.
  • Мне не нужно было дублировать банку gson в проекте приложения, чтобы использовать класс Gson.
  • Я мог бы запустить и отладить проект приложения.

В свойствах проекта проекта приложения я обнаружил, что gson jar добавляется как часть зависимостей Android, как показано ниже,Вы можете проверить свойства проекта вашего приложения-> Java Build Path-> Libraries-> Android зависимости, чтобы увидеть, виден ли там используемый вами jar-файл.

Кажется, что если у вас есть jar-файлы в проекте lib Andoroid с правильно заданным путем сборки, то никакой дополнительной настройки пути сборки не требуется в проекте приложения, использующем проект lib.

1 голос
/ 25 июля 2011

Я считаю, что вы должны перейти в Eclipse> настройки> Java> Build Path> User Libraries.Затем, когда вы добавляете к нему файл jar, я считаю, что все проекты в рабочей области автоматически имеют этот jar в пути к классам.

0 голосов
/ 16 декабря 2011

Мне интересно, что на самом деле происходит, когда вы 'заказываете и экспортируете'.Похоже, вы вводите jar дважды, потому что внешняя ссылка, которую вы добавляете с помощью «Добавить внешние jar - это изменяет ваш файл .classpath в корне проекта), и любой используемый инструмент сборки автоматически предполагает, что папка libтакже добавил.

Ответ Айдана, вероятно, то, что вам нужно.

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

Если это код, которым вы управляете и планируете изменить, вероятно, лучше открыть отдельный проект для этого кода и добавить проект commons как «Требуемый проект» в путь сборки.Вы можете добавить проект на вкладке «Путь сборки Java» - «Проекты».Это создаст зависимость от текущего проекта, над которым вы работаете, и позволит мгновенно вносить изменения в код общего достояния.

Я вижу ниже комментарий о библиотеках Android.Я бы не подумал, что eclipse разрешит только jar для пользователя lib.Я помню, как несколько лет назад настраивал что-то для некоторых dll-файлов для нескольких приложений Swing по совету Эйдана.

Для небольшой разработки для Android, которую я сделал, я создал шаблон maven / android для получения своих проектов.началось.Если вы не используете Maven, я уверен, что есть некоторые другие плагины, которые автоматически позаботятся о зависимостях вашей библиотеки Android, поэтому вам не придется об этом беспокоиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...