Копирование папки проекта Android не является ПОЛНОЙ резервной копией? - PullRequest
1 голос
/ 07 июля 2011

Несколько недель назад я сделал снимок своего проекта Android, просто скопировав всю папку (Windows 7) в общий сетевой ресурс.

Несколько недель спустя я хотел создать этот снимок в новом (и другом) рабочем пространстве. Итак, я:

  1. Создана пустая папка для Рабочая область
  2. переключил Eclipse на него,
  3. Затем использовал Файл> Импорт ... для копирования этот снимок в рабочую область.

Затем я с удивлением обнаружил ошибки в проекте - ошибок, которых не было до того, как я скопировал их в общий сетевой ресурс.

Первым признаком было то, что только в последнем файле проекта было несколько ошибок. Я «исправил» это, введя в 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. Возможно, в этом и кроется секрет.

Мои вопросы сейчас:

  1. Хранит ли Eclipse дополнительные информация о рабочем пространстве в другом месте?
  2. Какой хороший подход сделать Android проекты более независимы, как в "полностью резервной копии"?
  3. Есть ли смысл .metadata/.log файл? Могу ли я безопасно удалить это?

Ответы [ 2 ]

2 голосов
/ 07 июля 2011
  1. Я обнаружил, что метаданные Eclipse хранятся, как вы обнаружили, в папке . / Metadata вашего рабочего пространства.Я не верю, что есть какие-либо дополнительные папки, но я дважды проверю.

  2. Лучший способ сделать резервную копию проекта Android, если вы используете eclipse, это экспортировать его по правущелкнув по проекту, выбрав export и экспортировав его в виде архива, файловой системы и т. д. Таким образом, вы можете быть уверены, что создали резервную копию таким образом, что Eclipse знает, как с ним обращаться.

  3. Вместо того, чтобы удалить его, почему бы сначала не сделать его копию? Редактировать : Я бы также посмотрел на запуск eclipse.exe -clean в командном терминале.Это может быть более полезным, чем удаление папки .metadata вручную.

2 голосов
/ 07 июля 2011

У меня тоже были эти ошибки при импорте проекта. Если я правильно помню, помог правой кнопкой мыши по названию проекта и выбрал Android Tools -> Fix свойства проекта ...

После этого ошибки исчезли.

«Android требует совместимости с классом. установите на 5.0. Пожалуйста, исправьте проект свойства. ”Что это? Это ошибка, которую я получил после клонирования хранилище и пытается его импортировать в затмение. Есть разумно мало информации в Интернете об этом, пара обсуждений в списках рассылки но я решил написать пост на решение этого.

После импорта проекта в ваш рабочая область, вы получили ошибку. Итак, что вам нужно сделать дальше, это щелкните правой кнопкой мыши на проекте -> Android Инструменты -> Исправить свойства проекта. Сейчас одно это не решит проблему, вы нужно перезапустить Eclipse после этого. После этого попробуйте построить проект снова, и это должно работать успешно на этот раз (если у вас нет ошибок в сам код, я сделал).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...