Eclipseでリファクタリング->名前の変更を行い、プロジェクトの名前がEclipseで正常に変更されました。しかし、それをコピーしてフォルダに貼り付けると、古い名前が保持されます。
どうすれば完全に名前を変更できますか?
プロジェクトフォルダから.project
ファイルを開き、その中の次の値を変更します。
その中のプロジェクト名に変更する必要があります。
別の方法、
プロジェクトエクスプローラーから古いプロジェクトをコピーし、そこに貼り付けます。新しい名前を要求し、新しい名前を付けて完了します。
1)パッケージを右クリック->リファクタリング->名前の変更。 [参照の更新]を選択し、サブパッケージの名前を変更します。
2)AndroidMenifest.xmlのパッケージ名を変更します
package=”com.example.new_package_name”
3)resources-> values-> string.xmlでapp_nameを "new_name"に変更します
<string name="app_name">"new_name"</string>
それがうまくいくことを願っています!
TrueStudioもEclipseベースであり、おそらく同様の方法で機能します。ただし、プロジェクト名のリファクタリングは機能しません。あるプロジェクトを別のプロジェクトに複製する方法は、メインフォルダーでCtrl-C/Ctrl-Vを使用してから、新しいフォルダーの名前を目的の名前に変更することです。これで、ディレクトリ名といくつかのファイル名を変更するだけで済みます。そして、いくつかのファイルの内容を変更する必要があります。その後、プロジェクトをTrueStudioで開くことができます。
要するに、以下の例を参照してください。
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
プロジェクトのルートディレクトリに配置されたpythonスクリプトはこれを行うことができます:
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)
改善のためのコメントや提案は大歓迎です!
コピーして貼り付けるAndroidプロジェクトと新しいプロジェクトの作成は適切です。以下の手順に従ってください。
A. Eclipseを使用していて、最初にコピーするプロジェクトを開くだけの場合(コピーする必要のあるプロジェクトを開くのを忘れないでください)、次にクローン(コピー/貼り付け)を行いますAndroidプロジェクト。貼り付けると、Eclipseは新しいプロジェクト名を要求します。新しいプロジェクト名を付けてください。Eclipseのプロジェクト名とディレクトリは独立しているため、アプリケーション名とパッケージについては、次の手順でパッケージ名を変更できます。注:パッケージ名には2つのタイプがあります(マニフェストファイルに示されているメインパッケージと、すべてを保持するサブパッケージJavaファイル)
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"