Как вы переименовываете пакеты в новой IDE Android Studio, основанной на IntelliJ IDEA?
Включен ли автоматический рефакторинг?
Я хочу сделать массовый рефакторинг, но я не знаю как. Я работал два года с Eclipse, и в Eclipse это была операция в один клик.
Например, если вы хотите изменить com.example.app
на my.awesome.game
, то:
На панели вашего проекта нажмите на маленький значок шестеренки ()
Снимите/снимите флажок Compact Empty Middle Packages
Ваш каталог пакетов теперь будет разбит на отдельные каталоги
Индивидуально выберите каждый каталог, который вы хотите переименовать, и:
Refactor
Rename
Rename Package
вместо "Переименовать каталог".com
в Android Studio может появиться предупреждение. В таком случае выберите Rename All
build.gradle
- обычно app
или mobile
). Обновите applicationId
в defaultConfig
новое имя пакета и Grad Gradle, если оно еще не было обновлено автоматически:
Возможно, вам придется изменить атрибут package=
в вашем манифесте.
Очистить и восстановить.
Готово! В любом случае, Android Studio нужно сделать этот процесс немного проще.
Еще один хороший метод: сначала создайте новый пакет с нужным именем, щелкнув правой кнопкой мыши папку Java → Создать → Пакет.
Затем выберите и перетащите все ваши классы в новый пакет. Android Studio повсеместно проведет рефакторинг имени пакета.
Наконец, удалите старый пакет.
Готово.
Очень важно:
При использовании этого метода вы должны вручную изменить файл AndroidManifest.xml и файл build.gradle на новый пакет.
Изменение идентификатора приложения (которое теперь не зависит от имени пакета) может быть сделано очень легко за один шаг. Вам не нужно касаться AndroidManifest. Вместо этого выполните следующие действия:
Обратите внимание, что это не изменит имя пакета. Развязка имени пакета и идентификатора приложения объясняется здесь: http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename
Подход, используемый мной для переименования имени пакета, прост:
Шаг 1 : Выберите вариант "Проект" в меню слева от Android Studio
Шаг 2 : Щелкните правой кнопкой мыши на java и добавьте новый пакет и установите желаемое имя пакета
Шаг 3 : Введите новое имя_файла
Шаг 4 : Скопируйте все файлы из старого пакета и вставьте в новый пакет
Шаг 5 : Переименовать имя пакета в файле манифеста
Шаг 6 : Переименовать имя пакета в файле build.gradle
Шаг 7 : Затем щелкните правой кнопкой мыши старый пакет и удалите его со всеми его данными, а также удалите этот каталог
Шаг 8 : Затем перестройте свой проект
Шаг 9 : Затем вы найдете некоторые ошибки старого import packagename в своем проекте Выберите имя старого пакета в любом файле и нажмите CTRL + Shift + R и введите новое имя пакета в поле "Изменить", затем нажмите "Найти"
Шаг 10 : Затем появится всплывающее окно, как показано ниже, и выберите из него вариант "Все файлы"
Шаг 11 : Снова перестройте свой проект, бинго изменилось ваше имя пакета проекта:)
Щелкните правой кнопкой мыши пакет на панели проекта.
Выберите "Рефакторинг" → "Переименовать" в контекстном меню.
shift+F6
, вы получите всплывающее окно, как показано ниже.
Переименовать пакет.
Это сделано.
(1)
Откройте файл:
app → manifestests → AndroidManifest.xml
Выделите каждую часть имени пакета, которую вы хотите изменить (не выделяйте полное имя пакета), затем:
Сделайте эти шаги в каждой части имени пакета
(2)
Открыть (Gradle Script) → (build.gradle(Modul: приложение))
и обновить applicationId до вашего имени пакета
(3)
откройте меню (сборка) и выберите (перестроить проект)
Выберите пакет, который будет подвергнут рефакторингу. Refactor → Move → "Переместить xxx в новый пакет".
IntelliJ IDEA имеет опцию "Компактные пустые средние пакеты". Выберите значок параметра на вкладке "Проект" и деактивируйте его.
Смотрите: Как я могу изменить имя пакета верхнего уровня в IntelliJ IDEA?
Я видел верхние голосовые ответы, но я нашел немного другое, чтобы сделать это, я стараюсь сделать самый полный учебник.
В 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, сидящие там в проекте (Alt+1
или Command+1
для ярлыка) и переименовать каталоги рефакторинга ожидая там, как вы ожидали.
Рефакторинг для переименования одного или нескольких из этих каталогов для достижения вашей цели. Единственное, что вы должны заметить здесь: вы должны выбрать каталоги, а не пакеты, когда вас спросит диалог.
Если у вас много классов в вашем проекте, вам потребуется некоторое время, чтобы дождаться его автоматического сканирования и переименования.
Кроме того, вы должны переименовать имя пакета внутри AndroidManifest.xml вручную, я думаю, что другие имена в этом файле могут принести пользу префиксу.
[ТАКЖЕ], вам может понадобиться заменить все com.hello.world.R
на новый XXX.XXX.XXX.R
(Command+Shift+R
для краткости)
Восстановите и запустите проект, чтобы увидеть, работает ли он. И используйте "Найти в пути", чтобы найти другие имена без касания, которые вы хотели бы переименовать.
Попробуйте выполнить следующие действия:
******* Наконец, его сделано ******
Обновленный ответ: май 2015
OK Я боролся с клонированием и переименованием проектов в Android Studio, но, в конце концов, я это добился. Ниже приведены следующие шаги:
Что это...
Я попробовал два решения с высоким рейтингом, но нашел некоторые проблемы, хотя оба они работают в некоторой степени.
После некоторых экспериментов я нашел, что следующий метод работает хорошо для меня.
Если вам просто нужно изменить последнюю часть имени пакета, используйте метод, описанный GreyBeardedGeek, а именно
Щелкните правой кнопкой мыши пакет на панели "Проект". Выберите "Рефакторинг" → "Переименовать" из контекстного меню
Если вам нужно изменить полное имя пакета, сделайте следующее.
Щелкните правой кнопкой мыши пакет на панели "Проект". Выберите "Рефакторинг" → "Переместить" из контекстного меню
Это создаст новую папку пакета (при необходимости), но сохранит последнюю часть имени вашего пакета, как и раньше. Если вам нужно изменить последнюю часть, выполните переименование соответственно.
Обратите также внимание, что вам может потребоваться изменить имена пакетов, например. build.gradle, manifest и/или любые файлы ресурсов xml или даже в вашем коде, если они жестко закодированы. После этого при необходимости выполните проект Sync/Clean/Rebuild.
Я нашел способ более легкого решения этой проблемы, который также изменил сгенерированный импорт, например 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 будет синхронизироваться, а ваше имя пакета должно быть изменено на новое.
Я нашел, что это самый простой и тот, который охватывает все области, такие как сгенерированные файлы.
Я нашел другой способ, который работает, или дополнительный шаг к некоторым из ответов здесь, особенно если вы хотите изменить домен. Работает в android studio 1.4. Это то, что я сделал:
так, например, если вы хотите переименовать "com.example.app" в "com.YourDomain.app", откройте файл под переименованным пакетом, в пакетиках пакета установите курсор на "примерную" часть домена и нажмите Shift + F6 и переименуйте пакет в "YourDomain".
Надеюсь, что это поможет:)
Щелкните правой кнопкой мыши по пакету → рефакторинг и измените имя. Вы также можете изменить его в манифесте. Иногда, если u меняет имя пакета, но после создания apk он показывает другое имя пакета в это время, проверьте "applicationId" в файле build.gradle.
Общей ошибкой, которую можно сделать, является нельзя переименовать структуру пакета i.e невозможно изменить com.name.android на com.Renamed.android при попытке изменить на уровне com.name.android.
Чтобы одно и то же изменение изменилось на один уровень вверх, i.e имя com.name, и здесь, когда вы реорганизуете его, переименуйте. Это будет работать всегда
Это я верю, что вы ищете - Refactor > Move. Вы также можете нажать F6.
Вы получите два всплывающих окна. Убедитесь, что вы выбрали переименование пакета на обоих. После этого вы получите всплывающее окно для размещения нового имени пакета.
Обратите внимание, что если ваше имя пакета, например, com.example.android.projectname, то это позволит вам сменить com.example.android на что-то еще.
Еще одна вещь, это также обновит applicationId в вашем build.gradle. Просто убедитесь, что флажки для "поиска в комментариях и строках" и "поиск текстовых вхождений" проверяются для его работы.
ctrl + Shift + R всегда работал для меня. Просто replace all
и выберите All Files
.
Дополнительный ответ через 3 года, конечно, если какой-либо предыдущий не работает для вас, потому что "что-то".
Готово!
Ваше имя пакета будет изменено со всех java файлов и файла манифеста. Вы должны вручную изменить имя пакета из build.gradle
Обязательно вернитесь к Шехарьяру. Ответ начинается с In Android Studio, you can do this:
, потому что он БОЛЬШОЙ. Есть так много ответов и комментариев, которые следуют за ним, что было бы легко запутаться и отказаться, но НЕ. Это ответ РАБОТЫ.
Короче говоря, вы делаете THREE THINGS:
Снимите выделение Compact Empty Middle Packages
.
Refactor
Rename
каждый старый каталог node, выбрав CHANGE ПАКЕТ (а не каталог) для соответствия новому имени пакета. (Обязательно сделайте предварительный просмотр изменений.)
Измените build.gradle
файл и сделайте APPLICATION_ID
соответствие новому имени пакета.
Лучший способ написать новое имя пакета и перетащить его из старого имени пакета. Второй способ, если вы нажмете Refactor, затем переместите опцию, а затем переименуйте имя пакета, он переименует имя пакета, а затем перестроит.
В Build.gradle вам нужно сделать вручную, если u Refactor, то он не будет переименован в Build.gradle.
Пакеты служат двум целям. Одним из них является уникальная идентификация вашего приложения в магазине Google Play. Другой - назвать пакет для R.java class
который генерируется при сборке вашего проекта. Вы можете думать о первой цели как о внешнем пакете, а вторая как о внутреннем пакете. Предполагая, что вы хотите изменить внешний пакет, чтобы его можно было идентифицировать в магазине Play, есть удобный способ сделать это.
В Android Studio
choose File -> Project Structure -> Choose your app module -> Click on the
Flavors tab -> change the Application id.
Теперь, когда вы создаете свой проект, ваш APK и манифест будут использовать это новое имя пакета.
Первая часть состоит из создания нового пакета в папке java
и выбора, а затем перетаскивания всех ваших исходных файлов из old package
в этот new package
. После этого вам нужно remane
имя пакета в android manifest
на имя нового пакета.
На шаге 2 вот что вам нужно сделать. Вам нужно изменить старое имя пакета в applicationId
под модулем build.gradle
в вашей андроид-студии в дополнение к изменению имени пакета в manifest
. Итак, в итоге, нажмите на build.gradle
который находится ниже "AndroidManifest.xml" и измените значение applicationId
на имя вашего нового пакета.
Затем, на самом верху, под build
. clean
ваш проект, а затем rebuild
. Это должно быть хорошо отсюда.
Щелкните правой кнопкой мыши на имени пакета → Refractor → Rename → введите имя пакета → Нажмите "Refractor". Не редактируйте файлы сборки, кроме "build.gradle" в папке "приложение".
For More: переименование проекта студии Android - Вишну Сиван
Нажмите Ctrl + Shift + R
Замените старую упаковку новой.
Щелкните правой кнопкой мыши на имени пакета.
Refactor
> Rename
и переименовать в новый
Быстрый и простой способ:
1- открыть MainActivity.java
или любой доступный java файл.
В верхней части находится объявление пакета, например:
пакет com.
example
.myapp;
выберите часть пакета, которую вы хотите изменить, и нажмите Shift + F6. Я лично хочу изменить example
.
В диалоговом окне предупреждения выберите Переименовать пакет, а затем вставьте нужное имя пакета.
2- Откройте AndroidManifest.xml
и внутри тега <manifest>
измените package
на требуемое имя пакета.
3- открыть build.gradle(Module: app)
и изменить applicationId
на требуемое имя пакета.
После того, как вы перейдете к одному из этих методов, чтобы переименовать пакет, вы можете увидеть ошибки.
Если/, когда ваш R.java не генерируется правильно, вы получите много ошибок в своем проекте, говоря error: cannot find symbol class R
, а также error: package R does not exist
.
Не забудьте проверить свой манифест приложения xml. Имя пакета манифеста должно соответствовать фактическому имени пакета. Кажется, что R.java генерируется из манифеста приложения и может вызывать эти ошибки, если есть несоответствие.
Не забудьте проверить соответствие атрибутов package
в <manifest package="com.yourcompany.coolapp">
Выберите опцию
Снимите флажок Compact Empty Middle Packages.
Переименование каталога crl в crl1
Наконец, нажмите кнопку Do Refactor, помеченную на изображении ниже введите здесь код
После внесенных изменений
Это работает очень хорошо для меня, даже для изменения вхождений во всех соответствующих модулях для имен папок, которые я хочу изменить в пакете, но для меня он отлично работает, только если я выполняю следующие шаги:
Я рекомендую использовать 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\lastname! Все это:)
Как переименовать com.example.app
в com.android.app
:
в пакете com.example.app
выберите пример
Shift + F6
выберите rename package
переименовать пример на андроид
подтвердить do refactor
например, если вы хотите изменить пакет с com.example.a на com.example.b
1) измените папку стиля проекта с android на пакет (со стороны проекта)
2) щелкните правой кнопкой мыши верхнюю часть папки и нажмите "Заменить в пути"
3) выбрать в кнопке проекта
4) при первом вводе write com.example.a
5) во втором вводе write com.example.b
6), когда вы видите предупреждение, выберите все, чтобы заменить значение
после завершения замены вы можете увидеть, что ваше имя пакета - com.example.b
Мне нужно было запустить File-> Invalidate Caches/Restart... для удаления остатков исходного пакета
Перейдите в свой AndroidManifest.xml
Он работает для меня
Есть также хорошая клавиша быстрого доступа, просто нажмите n
выберите Class/Package
который вы хотите переименовать, и нажмите ALT + два раза R или Shift + F6
которые отражают: -> Меню Refactor
и функцию Rename
в Android Studio. После переименования существующего пакета он показывает в нижней части, где эффект этого reflection/rename
если вы нажмете кнопку Refector
, он изменит Class name/Package name
где используется во всем проекте.
перейти в AndroidManifest.xml Там вы найдете пакет как атрибут тега manifest. Просто выберите часть, которую вы хотите изменить, правый клик- > рефакторинг → переименовать
Возможно, раньше это было тяжело, но на сегодняшний день это уже не так.
Вы также можете изменить идентификатор приложения в
defaultConfig {
applicationId
}
Коротко и ясно
Compact Empty Middle Packages
и изменить каждое (dir) имя в то время? Например, если вы хотите изменить имя вашего пакета с com.test.app
на in.myapp.test
?
Чтобы переименовать имя пакета в студии Android, щелкните значок настроек в разделе проекта и отпустите Компактные пустые средние пакеты, после чего пакет будет разбит на несколько имен папок, затем щелкните правой кнопкой мыши в папке вам нужно изменить имя, нажмите рефакторинг → Переименовать → Введите имя, которое вы хотите изменить, в → Рефактор → Рефакторинг Directory, затем импортируйте файл R.java во весь проект. Работаю для меня.
Если ваш пакет начинается с mypackageold.something.test
, вы не можете изменить его на mypackagenew.somethingnew.testnew
.
В этом случае, если я следую выше принятым шагам ответа, результат будет mypackageold.somethingnew.testnew
.
Только если ваш пакет начинается с com....
в новый пакет, принятый выше ответ будет работать.
Итак, если вы хотите изменить пакет с уровня корня
build.gradle
и обновите applicationId
.Это очень легко сделать. Просто выполните два шага:
Щелкните правой кнопкой мыши на корневой папке и выберите настройки открытого модуля.
После этого перейдите на вкладку flavors и измените идентификатор приложения, как хотите.
Для тех, кто думает, что это изменит только идентификатор приложения в файле build.gradle:
Google написала, что
Последний пакет, который используется в вашем встроенном манифесте .apk, и это пакет, который ваше приложение известно как на вашем устройстве и в магазине Google Play, является "идентификатором приложения".
и
Пакет, который используется в вашем исходном коде для обращения к вашему классу R и для разрешения любых относительных регистраций активности/сервисов, по-прежнему называется "пакетом".
Вы можете прочитать больше на http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename