Проблема
У вас есть проекты, основанные на Eclipse ADT, и вы хотите использовать их с модулем Eclipse AndMore.
Решение
Преобразуйте проекты, изменив некоторые строки в двух конфигурационных файлах, или используйте функцию преобразования проекта в модуле AndMore.
Обсуждение
Редактирование конфигурационных файлов
В файле .project
вы увидите строки, ссылающиеся на com.android.ide.eclipse.adt
, например:
<projectDescription>
<buildSpec>
<buildCommand>
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
...
</buildCommand>
</buildSpec>
<natures>
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
Аналогично в вашем пути .classpath
вы увидите такие строки:
<name>org.eclipse.andmore.ResourceManagerBuilder</name>
Измените их, например, так:
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
Вы также можете внести эти изменения глобально. Если у вас есть опыт работы с командной строкой, напишите сценарий, подобный команде Брайана Кернигана replace
, которая меняет строки во множестве файлов без необходимости открывать их в редакторе. Этот сценарий (и его вспомогательные компоненты) можно найти в моем проекте scripts. Затем можете перейти в корневую папку рабочей области и преобразовать десятки или сотни проектов с помощью одной команды (убедитесь, что у вас есть резервная копия, если что-то пойдет не так!):
$ cd workspace
$ replace com.android.ide.eclipse.adt org.eclipse.andmore */.classpath */.project
Я на самом деле использовал эту команду для массового преобразования проектов Eclipse в репозитории GitHub, в котором хранятся файлы книги. Если вам не нравится этот подход, используйте встроенный конвертер AndMore для преобразования каждого проекта по очереди.
Использование конвертера AndMore
После того как вы установите AndMore, можете преобразовать проекты в рабочей области. Откройте каждый проект в среде Eclipse с помощью модуля AndMore, но не ADT, и вы увидите несколько ошибок, в основном из-за того, что файл класса java.lang.Object
не может быть найден, — явное указание на то, что путь к классам полностью закрыт (рис. 1).
Рис. 1. Конвертер AndMore: предварительное состояние (с ошибками доступа к классам)
Для того чтобы преобразовать проект из ADT в AndMore, щелкните правой кнопкой мыши на имени проекта в окне Package Explorer и выберите команду Configure
→ Convert Android ADT Configuration
(Настроить
→ Преобразование конфигурации Android ADT
) (рис. 2).
Рис. 2. Конвертер AndMore: начало преобразования
Затем просто откиньтесь на списку стула и расслабьтесь, пока конвертер будет выполнять свою работу, а среда Eclipse — перестраивать проект. Этот процесс должен закончиться без ошибок (рис. 3).
Рис. 3. Конвертер AndMore: последующее состояние (без ошибок)
Вы можете повторить этот процесс для любых проектов, которые у вас есть.