Как вы переименовываете пакеты в новой IDE Android Studio, основанной на IntelliJ IDEA?
Включен ли автоматический рефакторинг?
Я хочу сделать массовый рефакторинг, но я не знаю как. Я работал два года с Eclipse, и в Eclipse это операция в один клик.
Как вы переименовываете пакеты в новой IDE Android Studio, основанной на IntelliJ IDEA?
Включен ли автоматический рефакторинг?
Я хочу сделать массовый рефакторинг, но я не знаю как. Я работал два года с Eclipse, и в Eclipse это операция в один клик.
Ответы:
Например, если вы хотите изменить com.example.appна my.awesome.game, то:
На панели вашего проекта нажмите на маленький значок шестеренки (
)
Снимите флажок / отмените выбор Compact Empty Middle Packagesопции

Ваша директория пакета теперь будет разбита на отдельные директории
Индивидуально выберите каждый каталог, который вы хотите переименовать, и:
RefactorRenameRename Packageвместо «Переименовать каталог».comв Android Studio может появиться предупреждение. В таком случае выберите Rename All
Теперь откройте ваш файл сборки Gradle ( build.gradle- Обычно appили mobile). Обновите applicationIdв defaultConfigсвой новый имя пакета и Grad Gradle, если он еще не был обновлен автоматически:

Возможно, вам придется изменить package=атрибут в вашем манифесте.
Очистить и восстановить.
Выполнено! В любом случае, Android Studio нужно сделать этот процесс немного проще.
com.example.testк com.exampleи затем удалить com.example.test.
Еще один хороший метод: сначала создайте новый пакет с нужным именем, щелкнув правой кнопкой мыши папку Java → Создать → Пакет .
Затем выберите и перетащите все ваши классы в новый пакет. Android Studio будет проводить рефакторинг имени пакета везде.
Наконец, удалите старый пакет.
Выполнено.
Очень важно:
Вы должны вручную изменить AndroidManifest.xml и файл build.gradle на новый пакет, если вы используете этот метод.
Изменить идентификатор приложения (который теперь не зависит от имени пакета) можно очень легко за один шаг. Вам не нужно трогать AndroidManifest. Вместо этого сделайте следующее:
Обратите внимание, что это не изменит имя пакета. Разделение имени пакета и идентификатора приложения объясняется здесь: http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename
com.example.sampleна com.exampleиспользование других ответов
Подход, использованный мной для переименования имени пакета, прост:
Шаг 1. Выберите опцию «Проект» в левом меню Android Studio
Шаг 2 : Щелкните правой кнопкой мыши на Java, добавьте новый пакет и установите желаемое имя пакета
Шаг 3 : Введите новое имя пакета
Шаг 4 : Скопируйте все файлы из старого пакета и вставьте в новый пакет
Шаг 5 : переименуйте имя пакета в файле манифеста
Шаг 6 : переименуйте имя пакета в файле build.gradle
Шаг 7 : Затем щелкните правой кнопкой мыши старый пакет и удалите его со всеми его данными, а также удалите этот каталог.
Шаг 8 : Затем перестройте свой проект
Шаг 9 : Затем вы обнаружите в своем проекте ошибки старого имени пакета импорта. Выберите имя старого пакета в любом файле и нажмите CTRL + Shift + R , введите новое имя пакета в поле замены, затем нажмите найти
Шаг 10 : Затем появится всплывающее окно, как показано ниже, и выберите опцию «Все файлы».
Шаг 11 : Перестройте свой проект снова, бинго, имя вашего проекта было изменено :)
Поместите курсор в название пакета, как показано ниже. Не выбирайте это, просто поместите это.
Затем нажмите Shift+, F6вы получите всплывающее окно, как показано ниже, выберите Rename package .
Введите свое новое имя и выберите Refactor . (Обратите внимание, поскольку мой курсор находится на «что-то», только что-то переименовывается.)
Это сделано.
Щелкните правой кнопкой мыши пакет на панели проекта .
Выберите Refactor -> Rename из контекстного меню.
Откройте файл:
приложение → манифесты → AndroidManifest.xml
Выделите каждую часть имени пакета, которую вы хотите изменить (не выделяйте имя всего пакета), затем:
Проделайте эти шаги в каждой части имени пакета.
Открыть (Gradle Script) >> (build.gradle (Модуль: приложение))
и обновите applicationId до вашего имени пакета
Откройте меню (построить) и выберите (Перестроить проект).
IntelliJ IDEA имеет опцию «Компактные пустые средние пакеты». Выберите значок параметра на вкладке « Проект » и деактивируйте его.
Смотрите: Как я могу изменить имя пакета верхнего уровня в IntelliJ IDEA?
Выберите пакет, который будет подвергнут рефакторингу. Refactor → Move → «Переместить xxx в новый пакет» .
Я видел ответы с наибольшим количеством голосов, но обнаружил, что это немного по-другому, я стараюсь сделать наиболее полный урок.
В Android Studio нажмите на значок шестеренки (
), а затем выберите параметр:, "Compact Empty Middle Packages"чтобы увидеть разделенные папки в виде дерева.
Теперь выберите папку, нажмите правую кнопку, чтобы открыть контекстное меню, выберите, Refactorа затемRename
Вам будет рекомендовано провести рефакторинг пакета:
Затем в окне отобразятся совпадения внутри проекта, выберите "Do Refactor":
Нам не нужно вручную изменять файлы AndroidManifest.xml или build.gradle, рефакторинг пакета сделает эту работу !.
Если имя вашего пакета разделено более чем двумя точками, скажем, com.hello.worldи более того, вы ничего не добавили в com/и com/hello/. Все ваши классы вводятся com/hello/world/, вы можете сделать следующие шаги для рефакторинга имен ваших пакетов в Android Studio или IntelliJ:
com/, com/hello/). Вы можете добиться этого, сначала добавив два файла в пакет com.hello.world, скажемcom.hello.world.PackageInfo1.java com.hello.world.PackageInfo2.java
затем рефакторинг их, переместив их в com и com.hello соответственно. Вы увидите, что com и com.hello сидят там в Project ( Alt+1
или Command+1для ярлыка) и переименовывает каталоги, а рефакторинг ждет там, как вы и ожидали.
Рефакторинг, чтобы переименовать один или несколько из этих каталогов для достижения вашей цели. Единственное, что вы должны заметить, это то, что вы должны выбирать каталоги, а не пакеты, когда вас спрашивает диалоговое окно.
Если в вашем проекте много классов, вам потребуется время, чтобы дождаться его автоматического сканирования и переименования.
Кроме того, вам нужно переименовать имя пакета в AndroidManifest.xml вручную, так что другие имена в этом файле могут иметь преимущество перед префиксом.
[ТАКЖЕ] , вам может понадобиться заменить все com.hello.world.Rна новое XXX.XXX.XXX.R( Command+Shift+Rдля краткости)
Перестройте и запустите ваш проект, чтобы увидеть, работает ли он. И используйте «Найти в пути», чтобы найти другие бесконтактные имена, которые вы хотите переименовать.
Обязательно отправляйтесь к великому ответу Шехаряра . За этим последовало так много ответов и комментариев, что было бы легко запутаться и сдаться, но не делайте этого . Этот ответ работает .
Короче говоря, вы делаете три вещи :
(1) Отмените выбор Compact Empty Middle Packages.
(2) Refactorзатем Renameкаждый старый узел каталога, выбрав Change Package( не Change Directory ) совпадение с новым именем пакета. (Обязательно сделайте предварительный просмотр изменений.)
(3) Отредактируйте build.gradleфайл и APPLICATION_IDсопоставьте имя нового пакета.
Обновленный ответ: май 2015
Хорошо, я боролся с проектами клонирования и переименования в Android Studio, но в конце концов я достиг этого. Вот шаги, чтобы следовать:
Это оно...
Я нашел более простое решение этой проблемы, которое также изменило сгенерированный импорт, как com.test.testpackagechange.R и заняло около минуты.
Ваш первый шаг - открыть Android Studio и открыть окно замены всех (Mac: cmd + shift + R, Windows, я предполагаю: ctrl + shift + R). Введите имя вашего старого пакета и тот, что ниже вашего нового имени пакета. Нажмите Найти. Это может занять некоторое время, поскольку он также просматривает созданные элементы. Если у него более 1000 просмотров, просто нажмите «Продолжить».
После этого нажмите «Заменить все», чтобы заменить старое имя пакета новым.
Теперь закройте Android Studio и перейдите в Finder на Mac или Windows Explorer в Windows. Измените имя папки на имя вашего нового пакета, например так:
Теперь снова откройте Android Studio. Gradle синхронизируется, и имя вашего пакета должно быть изменено на новое.
Я нашел, что это самый простой и тот, который охватывает все области, такие как сгенерированные файлы.
Распространенная ошибка, которую можно совершить, заключается в том, что нельзя переименовать структуру пакета, т. Е. Невозможно изменить com.name.android на com.Renamed.android, если попытаться изменить его на уровне com.name.android .
Чтобы получить такое же желаемое изменение, перейдите на один уровень вверх, то есть com.name, и здесь, когда вы будете выполнять рефакторинг, измените его на Renamed . Это будет работать всегда.
Я нашел другой способ, который работает или дополнительный шаг к некоторым ответам здесь, особенно если вы хотите изменить домен. Работает в Android Studio 1.4. Вот что я сделал:
build.gradle и измените идентификатор приложения в defaultConfig на то же имя, что и в манифесте, и перестройте проект.Так, например, если вы хотите переименовать «com.example.app» в «com.YourDomain.app», откройте файл в пакете, который нужно переименовать, в хлебных крошках пакета установите курсор на «пример» части домена и нажмите Shift+ F6и переименуйте пакет в «YourDomain».
Ваше имя пакета будет изменено из всех файлов Java и файла манифеста. Вы должны вручную изменить имя пакета с build.gradle.
Изменить имя пакета
Чтобы переименовать имя пакета, все, что вам нужно сделать, - это зайти в ваш AndroidManifest.xmlфайл, навести курсор мыши перед той частью имени пакета, которую вы хотите изменить.
Щелкните правой кнопкой мыши> Refactor> Rename
В новом окне нажмите Переименовать пакет
Измените имя и нажмите Refactor
… И нажмите Do Refactor внизу.
Имя вашего пакета обычно имеет формат com.domain.appname, в этом примере мы изменили часть имени приложения, но вы можете сделать те же шаги и для домена.
Выполнено! Вы изменили название своего пакета!
Я попробовал два решения с наибольшим количеством голосов, но нашел некоторые проблемы, хотя оба работают в некоторой степени.
После некоторых экспериментов я обнаружил, что следующий метод хорошо работает для меня.
Если вам просто нужно изменить последнюю часть имени пакета, используйте метод, описанный GreyBeardedGeek, а именно
Щелкните правой кнопкой мыши по пакету на панели «Проект». Выберите Refactor -> Rename из контекстного меню.
Если вам нужно изменить полное имя пакета, выполните следующие действия.
Щелкните правой кнопкой мыши по пакету на панели «Проект». Выберите Refactor -> Move из контекстного меню.
Это создаст новую папку пакета (при необходимости), но сохранит последнюю часть имени вашего пакета, как и раньше. Если вам нужно изменить последнюю часть, сделайте переименование соответствующим образом.
Также обратите внимание, что вам может потребоваться изменить имена пакетов, например, в build.gradle, manifest и / или в любых файлах ресурсов XML, или даже в вашем коде, если он жестко задан. После всего этого делайте Sync / Clean / Rebuild проекта по мере необходимости.
Как переименовать com.example.appв com.android.app:
в пакете com.example.appвыберите пример
Shift + F6
выбирать rename package
переименовать пример на андроид
подтверждения do refactor
Щелкните правой кнопкой по пакету -> рефакторинг и измените имя.
Вы также можете изменить его в манифесте. Иногда, если вы меняете имя пакета, но после создания файла .apk он показывает другое имя пакета. В это время проверьте «applicationId» в файле build.gradle .
Я рекомендую использовать Sublime Text (или Notepad ++ ). Замените com.one.lastname -> com.two.newname и com / one / lastname -> com / two / newname в ... \ Projects [MyProject]. и не забудьте переименовать ... \ Projects \ MyProject \ app \ src \ main \ java \ com \ one \ lastname, ... \ Projects \ MyProject \ app \ src \ test \ java \ com \ one \ lastname и ... \ Projects \ MyProject \ app \ src \ androidTest \ java \ com \ one \ фамилия!
Это все:)
Я считаю, что вы ищете Refactor> Move. Вы также можете нажать F6.
Вы получите два всплывающих окна. Убедитесь, что вы выбрали переименовать пакет на обоих. После этого вы увидите всплывающее окно с именем нового пакета.
Обратите внимание, что если имя вашего пакета, например, com.example.android.projectname, это позволит вам изменить com.example.android на другое.
Еще одна вещь, это также обновит идентификатор приложения в вашем build.gradle. Просто убедитесь, что флажки «поиск в комментариях и строках» и «поиск текстовых вхождений» установлены для его работы.
Быстрый и простой способ:
1- открыть MainActivity.javaили любой доступный файл Java.
В верхней части находится объявление пакета, например:
пакет ком.
example.myapp;
выберите часть пакета, которую вы хотите изменить, и нажмите Shift + F6 . Я лично хочу изменить example.
В диалоговом окне предупреждения выберите « Переименовать пакет», а затем вставьте нужное имя пакета.
2- Откройте AndroidManifest.xmlи внутри <manifest>тега измените packageна желаемое имя пакета.
3- откройте build.gradle(Module: app)и измените applicationIdна нужное имя пакета.
Пожалуйста, попробуйте следующие шаги:
******* Наконец это сделано ******
ctrl+ Shift+ RВсегда работал для меня. Просто replace allи выбирай All Files.
Первая часть состоит в создании нового пакета под javaпапкой и выбрав затем перетащить все исходные файлы из old packageэтого new package. После этого вам необходимо remaneуказать имя пакета в Android manifestдля названия нового пакета.
На шаге 2, вот что вам нужно сделать. Вам нужно изменить старое имя пакета в applicationIdмодуле build.gradleвашей андроид-студии в дополнение к изменению имени пакета в manifest. Таким образом, в итоге, нажмите на build.gradleкоторый ниже "AndroidManifest.xml" и измените значение applicationIdвашего нового имени пакета.
Затем на самом верху, под build. cleanваш проект, а затем rebuild. Это должно быть хорошо отсюда.
Лучший способ - написать новое имя пакета и перетащить его из более старого имени пакета.
Второй способ, если вы нажмете Refactor затем переместите опцию, затем переименуете имя пакета, он переименует имя пакета, а затем перестроит.
В Build.gradle вы должны сделать это вручную, если вы выполните Refactor, то он не будет переименовываться в Build.gradle.