I have done Refactor -> Rename in Eclipse and the project has been renamed successfully in Eclipse. But when I copy/paste it in a folder, it still keeps the old name.
How can I completely rename it?
I have done Refactor -> Rename in Eclipse and the project has been renamed successfully in Eclipse. But when I copy/paste it in a folder, it still keeps the old name.
How can I completely rename it?
Open your .project
file from the project folder and change following value in it.
You need to change to Project name in it.
Another way,
Copy Old project from the Project explorer , and paste it over there, It will ask for new name, give a new name , and done.
1) Right click on your package -> refactor -> rename. select Update references and rename subpackages.
2) Change packagename in AndroidMenifest.xml
package=”com.example.new_package_name”
3) In resources->values->string.xml change app_name to "new_name"
<string name="app_name">"new_name"</string>
Hope that will work!
TrueStudio is also Eclipse based, it probably works in a similar way. However refactoring the project name does not work. The way I clone one project to another is by using Ctrl-C/Ctrl-V on the main folder, and then rename the new folder to the desired name. Now we only need to change a directory name and some file names. And we need to modify the content of a couple of files. After that, the project can be opened in TrueStudio.
In short, see below example:
Rename Project:
Copy the project directory
“Nucleo-H743ZI_Jack_01-”
“Nucleo-H743ZI_Jack_010 - Copy”
Rename it to the new name
“Nucleo-H743ZI_Jack_010 - Copy”
“Nucleo-H743ZI_Jack_011_tcp”
Rename this directory
“Nucleo-H743ZI_Jack_011_tcp\TrueSTUDIO\Nucleo-H743ZI_Jack_010”
“Nucleo-H743ZI_Jack_011_tcp\TrueSTUDIO\Nucleo-H743ZI_Jack_011_tcp”
Rename these files
“Nucleo-H743ZI_Jack_011_tcp\Nucleo-H743ZI_Jack_010.ioc”
“Nucleo-H743ZI_Jack_011_tcp\Nucleo-H743ZI_Jack_011_tcp.ioc”
“Nucleo-H743ZI_Jack_011_tcp\TrueSTUDIO\Nucleo-H743ZI_Jack_011_tcp\Nucleo-H743ZI_Jack_010.elf.launch”
“Nucleo-H743ZI_Jack_011_tcp\TrueSTUDIO\Nucleo-H743ZI_Jack_011_tcp\Nucleo-H743ZI_Jack_011_tcp.elf.launch”
Change these files
“Nucleo-H743ZI_Jack_011_tcp\.mxproject” (3 occurrences)
“Nucleo-H743ZI_Jack_011_tcp\Nucleo-H743ZI_Jack_011_tcp.ioc” (2 occurrences)
“Nucleo-H743ZI_Jack_011_tcp\TrueSTUDIO\Nucleo-H743ZI_Jack_011_tcp\.cproject” (3 occurrences)
“Nucleo-H743ZI_Jack_011_tcp\TrueSTUDIO\Nucleo-H743ZI_Jack_011_tcp\.project” (1 occurrence)
“Nucleo-H743ZI_Jack_011_tcp\TrueSTUDIO\Nucleo-H743ZI_Jack_011_tcp\Nucleo-H743ZI_Jack_011_tcp.elf.launch” (5 occurrences)
Note: also get rid of absolute paths in Nucleo-H743ZI_Jack_011_tcp\TrueSTUDIO\Nucleo-H743ZI_Jack_011_tcp\.project
Open project
File -> Open Project from File System…
Directory: “Nucleo-H743ZI_Jack_011_tcp\TrueSTUDIO\Nucleo-H743ZI_Jack_011_tcp”
Click OK and Finish
A python script placed in the root directory of the project can do this:
chproj.py
# Changed the name of an TrueStudio project
import os
import sys
def inplace_change(filename, old_string, new_string):
# Safely read the input filename using 'with'
with open(filename) as f:
s = f.read()
if old_string not in s:
print '"{old_string}" not found in {filename}.'.format(**locals())
return
# Safely write the changed content, if found in the file
with open(filename, 'w') as f:
print 'Changing "{old_string}" to "{new_string}" in {filename}'.format(**locals())
s = s.replace(old_string, new_string)
f.write(s)
# Getting the current work directory (cwd)
dir_abs = os.getcwd()
dir_abs_split=dir_abs.split('\\')
n = len(dir_abs_split)
dst_dir = dir_abs_split[n-1]
new_name = dst_dir
print dir_abs
# Get original name
#src_dir = os.listdir(ts_dir)[0]
#old_name = src_dir
#print "old_name: " + old_name
mxproject_filename = dir_abs + "\.mxproject"
with open(mxproject_filename) as f:
content = f.readlines()
second_line = content[1]
#print second_line
second_line_split=second_line.split('/')
n=len(second_line_split)
old_name = second_line_split[n-2]
print "old_name: " + old_name
print "new_name: " + new_name
ioc_filename_old = dir_abs + "\\" + old_name + ".ioc"
ioc_filename_new = dir_abs + "\\" + new_name + ".ioc"
ts_dir = dir_abs + "\TrueSTUDIO"
ts_name_old = ts_dir + "\\" + old_name
ts_name_new = ts_dir + "\\" + new_name
elf_launch_old = ts_dir + "\\" + new_name + "\\" + old_name + ".elf.launch"
elf_launch_new = ts_dir + "\\" + new_name + "\\" + new_name + ".elf.launch"
cproject = ts_dir + "\\" + new_name + "\.cproject"
project = ts_dir + "\\" + new_name + "\.project"
print "Change path in " + project
new_path = "PARENT-2-PROJECT_LOC"
old_path = dir_abs.replace("\\", "/")
old_path = old_path.replace("c:", "C:")
print old_path
print new_path
if os.path.isfile(project):
# file exists
print "Modify file " + project
inplace_change(project, old_path, new_path)
if (new_name == old_name):
print "Nothing else to change"
sys.exit(0)
print "Rename directories and files:"
#os.rename(src, dst)
if os.path.isdir(ts_name_old):
# dir exists
print "Rename directory " + ts_name_old + " to " + ts_name_new
os.rename(ts_name_old, ts_name_new)
#os.rename(src, dst)
if os.path.isfile(ioc_filename_old):
# file exists
print "Rename file " + ioc_filename_old + " to " + ioc_filename_new
os.rename(ioc_filename_old, ioc_filename_new)
if os.path.isfile(elf_launch_old):
# file exists
print "Rename file " + elf_launch_old + " to " + elf_launch_new
os.rename(elf_launch_old, elf_launch_new)
print "Replace strings in files:"
if os.path.isfile(cproject):
# file exists
print "Modify file " + cproject
inplace_change(cproject, old_name, new_name)
if os.path.isfile(project):
# file exists
print "Modify file " + project
inplace_change(project, old_name, new_name)
inplace_change(project, old_path, new_path)
if os.path.isfile(ioc_filename_new):
# file exists
print "Modify file " + ioc_filename_new
inplace_change(ioc_filename_new, old_name, new_name)
if os.path.isfile(elf_launch_new):
# file exists
print "Modify file " + elf_launch_new
inplace_change(elf_launch_new, old_name, new_name)
if os.path.isfile(mxproject_filename):
# file exists
print "Modify file " + mxproject_filename
inplace_change(mxproject_filename, old_name, new_name)
Any comments or suggestions for improvements are welcome!
COPY AND PASTE ANDROID PROJECT and CREATE a NEW PROJECT is neat. Follow the following steps below:
A. If you are using Eclipse and all you need to do is first open the project that you want to copy(DON"T FORGET TO OPEN THE PROJECT THAT YOU NEED TO COPY), then clone(copy/paste) your Android project within the explorer package window on the left side of Eclipse. Eclipse will ask you for a new project name when you paste. Give it a new project name. Since Eclipse project name and directory are independent of the application name and package, the following steps will help you on how to change package names. Note: there are two types of package names. (The main package as it indicated in Manifest file and sub-package which holds all java files)
1. After you get done above step, to change Application package name(main package), follow the following steps:
First right click your project
Then go to "Android tools"
Then select "Rename Application package"
Enter a new name in a dialogue window , and hit OK.
Then It will show you in which part of your project the Application name will be changed. It will show you that
the Application name will be changed in manifest, and in most relevant Java files. Hit "OK"
YOU DONE in this part, but make sure you rebuild your project to take effect.
To rebuild your project, go to ""project" >>> "Clean" >>>> select a Project from a projects list, and hit "OK"
Finaly, you can run your new project.
2. To change src package(sub package) names of packages within Src folder follow the following steps:
First you need to create new package: (src > right click > new > package).
Example of creating package: com.myCompany.executable
Follow these steps to move the Java files from the old that has already been copied package in part A to your new package.
Select the Java files within that old package
Right click that java files
select "Refactor" option
select "Move" option
Select your preferred package from the list of packages in a dialogue window. Most probably you need to select the new one you just created and hit "OK"