How do you rename packages in the new IDE Android Studio, based on IntelliJ IDEA?
Is there an automatic refactoring included?
I want to make bulk refactorin
For example, if you want to change com.example.app
to my.awesome.game
, then:
In your Project pane, click on the little gear icon ( )
Uncheck the Compact Empty Middle Packages
option
Your package directory will now be broken up into individual directories
Individually select each directory you want to rename, and:
Right-click it
Select Refactor
Click on Rename
In the pop-up dialog, click on Rename Package
instead of Rename Directory
Enter the new name and hit Refactor
Click Do Refactor in the bottom
Allow a minute to let Android Studio update all changes
Note: When renaming com
in Android Studio, it might give a warning. In such case, select Rename All
Now open your Gradle Build File (build.gradle
- Usually app
or mobile
). Update the applicationId
in the defaultConfig
to your new Package Name and Sync Gradle, if it hasn't already been updated automatically:
You may need to change the package=
attribute in your manifest.
Clean and Rebuild.
Done! Anyway, Android Studio needs to make this process a little simpler.
I have seen the top voted answers but i found is a little bit different to do this, i try to do the most complete tutorial.
From the Android Studio click over the gear icon ( ) and then select the option: "Compact Empty Middle Packages"
, to see the folders separated in a tree view.
Now select the folder, click right button to open the contextual menu, select Refactor
and then Rename
You will be advised to refactor the package:
Then a window will show the coincidences inside the proyect, select "Do Refactor"
:
We don´t have to change manually the AndroidManifest.xml or build.gradle files, Refactoring the package will do the job!.
The common mistake that one can make is one cannot rename the package structure i.e. it is not possible to change com.name.android to com.Renamed.android when one tries to modify at the com.name.android level.
In order to have the same desired change go one level up i.e com.name and here when you refactor change it to Renamed. This will work always.
Right click on package -> refactor and change the name.
You can also change it in the manifest. Sometimes if you change the package name, but after creating the .apk file it shows a different package name. At that time check "applicationId" in the build.gradle file.
Quick and easy way:
1- open MainActivity.java
or any available java file.
At the top there is the package declaration such as:
package com.
example
.myapp;
select the package portion that you want to change and press Shift+F6. I personally want to change the example
.
In the warning dialog, select Rename package and then insert the desired package name.
2- Open AndroidManifest.xml
and inside <manifest>
tag change the package
to the desired package name.
3- open build.gradle(Module: app)
and change the applicationId
to the desired package name.
If your package name is more than two dot separated, say com.hello.world
and moreover, you did not put anything in com/
and com/hello/
. All of your classes are putting into com/hello/world/
, you might DO the following steps to refactoring your package name(s) in Android Studio or IntelliJ:
com/
, com/hello/
). You can
achieve this by first add two files to package com.hello.world, saycom.hello.world.PackageInfo1.java com.hello.world.PackageInfo2.java
then refactor them by moving them to com and com.hello respectively.
You will see com and com.hello sitting there at the Project(Alt+1
or Command+1
for shortcut) and rename directories refactoring is
waiting there as you expected.
Refactor to rename one or more of these directories to reach your aim. The only thing you should notice here is you must choose the directories rather than Packages when a dialog ask you.
If you've got lots of classes in your project, it will take you a while to wait for its auto-scan-and-rename.
Besides, you need to rename the package name inside the AndroidManifest.xml manually, I guess, such that other names in this file can benefit the prefix.
[ALSO], it might need you to replace all com.hello.world.R
to the new XXX.XXX.XXX.R
(Command+Shift+R
for short)
Rebuild and run your project to see whether it work. And use "Find in Path" to find other non-touch names you'd like to rename.