Несколько недель назад я сделал снимок своего проекта Android, просто скопировав всю папку (Windows 7) в общий сетевой ресурс.
Несколько недель спустя я хотел создать этот снимок в новом (и другом) рабочем пространстве. Итак, я:
- Создана пустая папка для
Рабочая область
- переключил Eclipse на него,
- Затем использовал Файл> Импорт ... для копирования
этот снимок в рабочую область.
Затем я с удивлением обнаружил ошибки в проекте - ошибок, которых не было до того, как я скопировал их в общий сетевой ресурс.
Первым признаком было то, что только в последнем файле проекта было несколько ошибок. Я «исправил» это, введя в Eclipse (снова!) Местоположение Android SDK:
Windows > Preferences > Android > SDK Location: C:\android-sdk-windows
Это привело к появлению ошибок во многих файлах со следующей подсказкой в консоли:
Android requires .class compatibility set to 5.0. Please fix project properties.
Я исправил это, наведя курсор на @override
и выбрав подсказку Change workspace compliance and JRE to 1.5
. Это странно, потому что я проверил Windows > Preferences > Java > Compiler > Compiler compliance level:
, а раньше было 1.6 - разве 1.6 не включает 1.5?
Затем у меня остались только две ошибки, связанные с @Override
s, которых на самом деле не должно быть (для методов, реализующих интерфейс). Поэтому я удалил их, и теперь все в порядке, и проект строится и работает отлично, как и раньше.
Все хорошо и здорово, но я был очень удивлен тем фактом, что мне действительно пришлось изменить что-нибудь в Eclipse, не говоря уже о том, что я в конечном итоге изменил исходный код (удалив @override
s). только) чтобы получить его сборку - исходный код, к которому не было никаких жалоб несколько недель назад!
Что может это объяснить? Разве копирование папки проекта Android не является полной резервной копией?
Будучи сбитым с толку этим открытием, я изучил папку рабочего пространства, используя мой любимый Emacs, и обнаружил, что существует скрытый подкаталог с именем .metadata
. Возможно, в этом и кроется секрет.
Мои вопросы сейчас:
- Хранит ли Eclipse дополнительные
информация о рабочем пространстве
в другом месте?
- Какой хороший подход сделать
Android проекты более независимы,
как в "полностью резервной копии"?
- Есть ли смысл
.metadata/.log
файл? Могу ли я безопасно
удалить это?