Проект Eclipse Android, как ссылаться на библиотеку в рабочей области?
Я выполнил несколько шагов, которые нашел здесь (сейчас не могу найти 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 библиотеки на пути сборки: Android 2.1 и com.android.ide.eclipse.adt.LIBRARIES
Первый проект-заглушка, который использует вышеупомянутую lib - имеет те же 2 библиотеки, что и вышеупомянутый проект, плюс иногда я использую "Add JAR", чтобы включить JAR из папки bin\ вышеупомянутого проекта.
2-й проект заглушки - те же библиотеки, что и в первом проекте заглушки
Должен ли я ссылаться на JAR из моего "проекта lib", используя одну из других вкладок в параметрах пути сборки? Может быть, вкладка "Проект" или вкладка "Источник"? В настоящее время у меня его нет ни в одной из этих областей.
Когда я попадаю в странное состояние, выполнение "Чистого проекта" также не помогает, я пробовал это несколько раз и открывал / закрывал IDE между чистками, но это не помогло.
На данный момент мы находимся на завершающей стадии тестирования, поэтому моя обычная ежедневная задача:
Сделайте небольшое обновление (исправление ошибки) в проекте LIB
Используйте мастер публикации для экспорта обоих проектов и обновления Android Market и других мест, в которых мы храним APK-файлы.
Поэтому я хотел бы, чтобы эти шаги были простыми, без необходимости открывать / закрывать несколько рабочих пространств или проходить множество этапов сборки, если это возможно.
1 ответ
Классический способ 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) из отмеченного, отмеченного проекта. Круто, а?:)