Проблема
Вы хотите использовать класс из другого проекта, но не хотите выполнять команды копирования и вставки.
Решение
Укажите проект как ссылочный, и среда Eclipse (и DEX) выполнит эту работу.
Обсуждение
Разработчикам часто приходится повторно использовать классы из другого проекта. В моей программе отслеживания GPS JPSTrack версия для платформы Android заимствует такие классы, как модуль ввода-вывода файлов из версии для Java SE. Вы, конечно же, не хотите копировать и вставлять классы из одного проекта в другой, потому что это делает техническое обслуживание невероятно сложным.
В простейшем случае, когда проект библиотеки содержит источник классов, которые вы хотите импортировать, все, что вам нужно сделать, — это объявить проект, содержащий необходимые классы (в моем случае версия Java SE) в качестве ссылочного проекта в пути сборки. Выберите команду Projects
→ Properties
→ Java Build Path
(Проект
→ Свойства
→ Путь сборки Java
), откройте вкладку Projects
(Проекты
) и щелкните на кнопке Add
(Добавить
). На рис. 1 я добавляю проект SE jpstrack как зависимость от проекта jpstrack.android для платформы Android.
Рис. 1. Установление зависимости между проектами с помощью стандартной среды Eclipse
Кроме того, создайте файл JAR с помощью мастера Ant или Eclipse. Попросите другой проект ссылаться на него как на внешний JAR в настройках пути к классу или физически скопируйте его в каталог libs
и обратитесь к нему оттуда.
Более современный метод, который часто является более надежным и официально рекомендованным, полезен только в том случае, если оба проекта являются проектами Android, заключается в том, чтобы объявить библиотечный проект с помощью команды Project → Properties → Android → Library (Проект → Свойства → Android → Библиотека). Щелкните на кнопке Add
(Добавить
) в другом проекте на том же экране, чтобы отобразить библиотечный проект как зависимость от основного проекта (рис. 2).
Рис. 2. Установление зависимости между проектами с помощью модуля AddMore
Для приверженцев командной строки первый метод подразумевает редактирование файла .classpath
, а второй метод просто создает записи в файле project.properties
. Например:
# Project target
target=android-7
android.library=false
android.library.reference.1=../wheel
Поскольку вы, вероятно, поддерживаете оба проекта в системе управления версиями исходного кода (а если это программы, которые вы когда-либо собираетесь поставлять, то вы обязаны это делать!), не забудьте пометить оба проекта при выпуске проекта для платформы Android — одно из преимуществ системы управления версиями исходного кода заключается в том, что вы можете воссоздать именно то, что поставили.
См. также
Документация пользователя для платформы Android Studio на этой веб-странице.