Проект Eclipse Android, как ссылаться на библиотеку в рабочей области? - PullRequest
19 голосов
/ 14 февраля 2012

Я выполнил несколько шагов, которые нашел здесь (сейчас не могу найти URL, извините), чтобы преобразовать мой проект Android в Eclipse в макет, где 99,9% моего кода находится в проекте библиотеки, а затем у меня есть 2 другихпроекты оболочки в той же рабочей области, которые в основном представляют собой только файлы AndroidManifest.xml и несколько файлов ресурсов.Это было сделано для того, чтобы я мог поддерживать 2 сборки одного и того же проекта, с небольшими изменениями текста / значка между двумя. Имя приложения также различается, поэтому я могу публиковать оба на Android Market одновременно.

С тех пор, как я это сделал, примерно каждые 10 раз, когда я компилирую, может быть, раз в день или два, я получаю «ошибку dalvik 1» и что-то вроде «Доступ уже существует» (Access - это имя первого модуля Java в моей библиотекепроект).

Чтобы «обойти» проблему, я перехожу к пути Java Build для моего проекта-заглушки, который пытаюсь создать, и удаляю файл JAR из моей основной библиотеки на вкладке библиотеки.Затем я могу выполнить сборку без ошибки.

Затем, через некоторое время (возможно, через 1 или 2 дня), я получу ошибку об отсутствующих классах при компиляции моего проекта-заглушки (не моей библиотеки).Так что я вернусь к пути Java Build и верну ссылку на файл JAR, и все будет хорошо снова на 1 или 2 дня, затем я вернусь к той же ошибке, что и раньше.

Это просто известная проблема и что-то, что мне нужно сделать, или я могу решить ее путем реструктуризации моих проектов / рабочих пространств?В настоящее время у меня есть:

Lib Project - только 2 libs на пути сборки: Android 2.1 и com.android.ide.eclipse.adt.LIBRARIES

Первый проект-заглушка, который использует вышеупомянутую lib - имеетте же 2 библиотеки, что и в предыдущем проекте, плюс иногда я использую «Добавить JAR», чтобы включить JAR из папки bin вышеупомянутого проекта.

2-й проект-заглушка - те же библиотеки, что и у первого проекта-заглушки

Должен ли я ссылаться на JAR из моего "проекта lib", используя одну из других вкладок в параметрах пути сборки?Может быть, вкладка «Проект» или вкладка «Источник»?В настоящее время у меня его нет ни в одной из этих областей.

Когда я попадаю в странное состояние, выполнение «Чистого проекта» также не помогает, я пробовал это несколько раз и открывал/ закрыть IDE между очистками, чтобы не решить.

На данный момент мы находимся на заключительных этапах тестирования, поэтому моя обычная ежедневная задача:

  1. Сделать второстепенноеобновление (исправление ошибки) в проекте LIB

  2. Используйте мастер публикации для экспорта обоих проектов и обновления Android Market и других мест, в которых мы храним APK-файлы

Так что я бы хотел, чтобы эти шаги были простыми, без необходимости открывать / закрывать несколько рабочих пространств или проходить множество этапов сборки, если это возможно.

1 Ответ

52 голосов
/ 14 февраля 2012

Классический способ Eclipse / Java

Добавление библиотеки (рабочей области)

  • Щелкните правой кнопкой мыши проект, в который вы хотите вставить.
  • Нажмите Properties.
  • Выберите Java Build Path.
  • Выберите вкладку Libraries.

Теперь все зависит от того, как вы компилируете свою библиотеку.Так что либо сделайте Add JARs... или Add Class Folder.Выберите вариант external для использования внешнего источника.Вот и все.

Добавить проект рабочей области

  • Щелкните правой кнопкой мыши проект, в который вы хотите вставить.
  • Нажмите Properties.
  • ВыбратьJava Build Path.
  • Выберите вкладку Projects.

Нажмите Add... на правой стороне, и все готово.

Дополнительный способ Android

Необходимо выполнить два шага:

  • Отметить проект, который вы хотите использовать как проект библиотеки
  • Ссылка на отмеченный проект

Отметитьпроект библиотеки

Щелкните правой кнопкой мыши свой проект и выберите Properties.Выберите Android слева и отметьте флажок IsLibrary.Готово.

Ссылка на отмеченный проект

Щелкните правой кнопкой мыши свой проект и выберите Properties.Выберите Android слева и Add... ваш отмеченный проект.Он будет добавлен в список и готов к использованию.Теперь вы можете получить доступ ко всем классам и ресурсам (например, Drawables, Strings) из указанного, отмеченного проекта.Круто, а?:)

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