Рефакторинг имени пакета разрушает все приложение - PullRequest
14 голосов
/ 28 июня 2011

Я пытаюсь реорганизовать свой пакет, используя Eclipse

org.sheehan.activity

до

org.sheehan.stocks.activity

По какой-то причине мой проект просто взрывается, когда я делаю это, и R не восстанавливается,Как правильно выполнить рефакторинг?

ОБНОВЛЕНИЕ : я обновил свой манифест Android, чтобы отразить это изменение.R все еще не возрождается.Даже после чистой.Компилятор жалуется на org.sheehan.activity.R

Ответы [ 7 ]

16 голосов
/ 28 июня 2011

Я решил:

Android Tools > Rename Package Application
2 голосов
/ 28 июня 2011

Если вы правильно переименовали, все ваши ссылки в вашем проекте должны были быть обновлены.После этого очистите ваш проект, перейдя в Project> Clean.Это должно это исправить.

1 голос
/ 07 февраля 2013

выберите базовый пакет вашего проекта в обозревателе пакетов eclipse, нажмите F2 (Rename), в диалоговом окне переименования: ВЫБЕРИТЕ ВСЕ флажки .: enter image description here

Это должно сделать это

1 голос
/ 10 декабря 2011

Исправление отсутствующей ссылки на R в затмении:

  1. Refactor -> Rename`

  2. Build -> Clean

  3. Инструменты Android -> Исправить свойства проекта

0 голосов
/ 30 ноября 2013

Щелкните правой кнопкой мыши в своем проекте, перейдите на

Android Tools > Rename Package Application

Иногда, если Project > Clean не работает, поэтому удалите папки /gen и /bin вашего проекта.

0 голосов
/ 12 марта 2013

Для более сложных операций импорта и рефакторинга буквальное закрытие Eclipse IDE может обновить кэш, который вызывает случайные ошибки, такие как «Конечная позиция лежит вне диапазона документа» или «то, что когда-то работало, теперь не вызывает ошибок извлечения волос».

Признаки того, что вы должны закрыть Eclipse при попытке переименовать вещи:

  1. Когда вы импортируете проект, сделайте некоторый рефакторинг (например, попытайтесь изменить имя пакета), затем удалите проект и попробуйте снова, вы увидите немедленные ошибки R.java, когда вы не делали этого раньше

  2. Когда вы импортируете проекты, которые вручную сгенерировали файлы R.java с пользовательским импортом, например "com.ns.proj.R", и не видите обновления имени в Preview

  3. Поле, которое спрашивает, хотите ли вы «Переименовать подпакеты», неожиданно отмечено

  4. код в «Предварительном просмотре >>» выглядит так, как будто он был выполнен ранее, вместо черно-белого кода с заменой правильных имен

  5. вы получаете ошибки XML в имени действия манифеста, как это

Android: имя = "com.ns.proj.CustomCocom.ns.proj.CustomControlse =" @ андроид: стиль / Theme.Light.NoTitleBar "

когда это должно быть

Android: имя = "com.ns.proj.CustomControls" Android: стиль = "Theme.Light.NoTitleBar"

Очевидно, что их слишком много, но это так же важно, как «следить за мячом» в спорте. То, что так легко забыть, но подобные вещи применимы и к другим программам, таким как Dreamweaver (например, когда вы используете опцию «Поместить» Dreamweaver вместо перетаскивания по FTP с FileZilla, и вы замечаете, что ваш домен не обновляет ваши изменения онлайн). Я позвонил в Adobe, когда впервые начал работать разработчиком 8 лет назад, потому что знал, что ничего плохого не делал. Говорят, иногда сгенерированные файлы для выполнения действия повреждаются ... другими словами, в IDE тоже есть ошибки!

В общем, закройте IDE перед тем, как отключиться ... это может спасти вам жизнь!

0 голосов
/ 28 июня 2011

Имя пакета не обновляется в файлах XML. В частности, ваш манифест, который должен знать базовый пакет.

...