Как включить проект Java в проект Android?

Я использую Eclipse для разработки настольной игры в Android. Я разработал интерфейс в Android-проекте.

С другой стороны, я разработал ИИ в регулярном проекте Java, потому что я хотел иметь возможность протестировать его без ограничений для эмулятора Android (я не нашел другого способа запустить код с помощью моей Windows JVM ).

Теперь наступает время, когда я хочу «присоединиться» к обоим проектам (которые работают нормально независимо), то есть использовать классы Java Java из пользовательского интерфейса.

Это то, что я пробовал:

В моем проекте Android Properties > Projects References я пометил проект Java. Это позволяет мне без ошибок запускать проект Android (который создает экземпляр объекта AI).

Но с ошибкой он не работает во время выполнения:

Could not find class 'my.package.AI', referenced from method my.otherpackage.UI.onStart 

Каким будет правильный способ включить проект AI Java в мой Android-проект?

(NB: Я все еще хочу иметь возможность разрабатывать и тестировать AI как обычное Java-приложение, поэтому я думаю, что использование фляги или копирование всех источников в проект Android не соответствовало бы моим потребностям)

РЕДАКТИРОВАТЬ:

Я надеялся, что новый ADT v17 решит проблему, но этого не произошло. Я пробовал практически каждый вариант, чтобы включить проект в мой Android-проект:

  • Добавление или связывание исходной папки
  • Добавление проекта (вкладка «Путь сборки Java»> «Проекты»)
  • Добавление папки класса или библиотеки (путь сборки Java)> вкладка «Библиотека»)
  • Включение всех ранее импортированных проектов / библиотек в качестве экспортированных

Единственным способом, который позволяет компилировать и запускать без ошибок, является добавление JAR проекта Java в путь создания проекта Android.

Проекты Ссылки добавляют только зависимый исходный код проекта (ваш проект AI) в качестве мягкой (возможно, более слабой слова), ваш проект AI не добавляется в ваш путь к проекту Android Project. Поэтому фактический файл ai.jar не экспортируется в окончательный apk, когда Eclipse создает ваше приложение.

Вы должны добавить проект AI в путь создания проекта Android:

  1. Щелкните правой кнопкой мыши на вашем проекте Android, выберите «Путь сборки – настройка пути сборки» на вкладке «Проекты» (требуемые проекты в пути построения), добавьте здесь проект AI.
  2. Затем на вкладке «Заказ» и «Экспорт» (порядок пути сборки и экспортированные записи) отметьте новый добавленный проект AI, который появился в списке.

Шаг 2, вероятно, является дополнительным, это должно добавить проект AI в качестве ссылки в проекте Android и экспортировать файл ai.jar в final.apk, когда Eclipse создаст ваш проект Android.

Обновление от ADT 17.0.0:

Android Dev Team просто выпустила SDK r17 с ADT 17.0.0, который утверждает, что теперь правильно обрабатывает эти варианты использования:

Специальные изменения Eclipse

Контейнер динамических классов классов, называемый «Библиотечные проекты», был переименован в «Android Dependencies», поскольку теперь он содержит больше, чем только проекты библиотеки.

Теперь контейнер также будет заполнен проектами Java-only, на которые ссылаются проекты библиотеки. Если эти Java-проекты также ссылаются на другие Java-проекты и / или файлы jar, они будут добавляться автоматически (также поддерживаются файлы jar, на которые ссылаются пользовательские библиотеки).

Важно: это происходит только в том случае, если ссылки заданы для экспорта в проект ссылки. Обратите внимание, что это не значение по умолчанию при добавлении проекта или файла jar в путь сборки проекта. Библиотечные проекты (и содержимое их файлов libs / *. Jar) всегда экспортируются. Это изменение влияет только на проекты только для Java и их собственные файлы jar.

Опять же, дубликаты (оба проекта и файлы jar) обнаруживаются и удаляются.

Подробнее в этой ссылке .

Изменить: после долгих испытаний, чтения и поиска моего решения. Проблема заключается в том, что вы не можете ссылаться на другой проект из проекта Android, хотя он отлично подходит для обычного Java-приложения.

Обходной путь для меня (Windows с файловой системой NTFS):
В командной строке (права администратора) создайте ссылку на символическую папку, используя команду mklink /D указывающую на папки исходного проекта и обновляйте в Eclipse по мере необходимости. Очевидным ограничением является то, что вы не можете использовать те же имена пакетов в исходном проекте и целевом проекте, а затем возникает проблема с libs в общем проекте.

пример:

 cd \java\workspace\AndroidProject\src\your\package mklink /D common c:\java\workspace\CommonProject\src\your\package\common 

Уточнение. Вы можете ссылаться на другой проект из проекта Android, чтобы его скомпилировать, однако при запуске ссылочные классы из включенного проекта не помещаются в apk classes.dex (проверяется декомпилятором dex).

Использование ADT 21.0.0 64 бит на Windows 7 64bit. Я попытался добавить проект для создания пути. Записано в заказе и экспорте, сыграно с заказом. Я прочитал официальное решение , подробное объяснение этого решения, экспортированное как JAR, добавленное в libs. Не работал, а источник был без ошибок. Читайте в комментариях, что решение не работает для всех.

Был сыт по горло им и попробовал простое, но несколько более грязное решение: связал источник проекта Java с проектом Android. Это сделал трюк. Надеюсь, что это тоже поможет другим.

Не добавляйте его в область ссылок проекта, а затем переходите в панель Android (в свойствах проекта), прокручивайте вниз и добавьте ее в Библиотеки.

Иногда это срабатывает, но иногда вызывает странные проблемы Eclipse (непонятно почему), и в этом случае копирование jar непосредственно в проект, кажется, работает лучше всего.