如何在基于IntelliJ IDEA的新IDE Android Studio中重命名软件包?
是否包含自动重构?
我想进行大规模重构,但我不知道怎么做。我在Eclipse工作了两年,在Eclipse中它是一个一键操作。
如何在基于IntelliJ IDEA的新IDE Android Studio中重命名软件包?
是否包含自动重构?
我想进行大规模重构,但我不知道怎么做。我在Eclipse工作了两年,在Eclipse中它是一个一键操作。
当前回答
这很容易做到。只需遵循两个步骤:
右键单击根文件夹,然后单击打开的模块设置。之后,转到口味选项卡并根据需要更改应用程序id。
对于那些认为这只会更改build.gradle文件中的应用程序id的人:
这是谷歌写的
在build.apk的清单中使用的最后一个包是“应用程序id”,它是您的应用程序在设备和Google Play商店中的名称。
and
源代码中用于引用R类和解析任何相关活动/服务注册的包继续称为“包”。
您可以阅读更多http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename
其他回答
接受的答案对我不起作用。这里有一个python脚本,可以直接在源文件上更改包名。
"""
Notes:
1 - This script it for python3
2 - Create a backup first
3 - Place on the root folder of the android project you want to change
4 - run `python change_android_studio_pkg_name.py`
5 - Type the old package name
6 - Type the new package name
7 - Clean and Rebuild on Android Studio
8 - SRC folder names won't be changed but app will work
"""
import os, glob, traceback
from pathlib import Path
def rwf(fp, mode="r", data="" ):
if mode == "r":
with open(fp, "r", encoding='utf8') as f:
return(f.read())
elif mode == "w":
with open(fp, "w", encoding='utf8') as f:
f.write(data)
old_pkg = input("Old PKG\n").strip()
new_pkg = input("New PKG\n").strip()
if not old_pkg or not new_pkg:
exit("Args Missing")
dirname, filename = os.path.split(os.path.abspath(__file__))
file_types = ['xml', 'txt', 'json', 'gradle', 'java']
_fs = glob.iglob(f"{dirname}/**", recursive=True)
for file_path in _fs:
ext = Path(file_path).suffix.replace(".", "").lower()
if os.path.isfile(file_path) and ext in file_types:
try:
content = rwf(file_path)
new_content = content.replace(old_pkg, new_pkg)
rwf(file_path, "w", new_content)
except:
print(traceback.format_exc())
pass
蟒蛇3要点
请尝试以下步骤:
单击设置档位图标并取消选择压缩空中间包现在,我们可以看到每个包文件夹都被分解为多个部分现在右键单击第一个包文件夹>>重构>>重命名现在将显示一个警告,但您可以继续并单击“重命名”包裹之后,输入域名作为软件包名称单击“Do Refactor”现在它已经更改了应用程序的包域名。现在更改根据您的要求提供域名扩展名和应用程序文件夹名称现在在gradle脚本中打开build.gradle(模块:app)。此处更改应用程序id并单击“立即同步”。
*******终于完成了******
这对我来说非常有效,即使是更改所有相关模块中的引用,也可以更改我想在包中修改的文件夹名称,但对我来说,只有完全按照以下步骤操作,这才有效:
A-如果您想更改根文件夹的名称(换句话说,通常在包中用于包含主要活动的文件夹的名称),可以在以下步骤(B到C)之前或之后通过退出“Android Studio”手动重命名此根文件夹。单击“导入项目…”,然后单击项目的新名称(此导入过程将自动使用项目文件重新调整“Gradle”文件)B-在接下来的C步骤之前,不要忘记手动修改要在包中更改的文件夹名称,方法是在以下3个文件中更改它们:“AndroidManifest.xml”、“MainActivity.java”(或您最终为第一个活动选择的名称)和“build.gradle(Module:app)”文件。C-按照上述步骤1至6(“在项目窗格中,单击小齿轮图标…”)->https://stackoverflow.com/a/29092698/2001610 D-仅当您现在想要更改根文件夹的名称时,您可以按照上面所述的“A”过程进行操作。
我用于重命名包名称的方法如下:-
步骤1:从Android Studio的左侧菜单中选择项目选项
步骤2:右键单击java并添加一个新包并设置所需的包名称
步骤3:输入新程序包名称
步骤4:从旧包复制所有文件并粘贴到新包中
步骤5:重命名清单文件中的包名称
步骤6:重命名build.gradle文件中的包名
步骤7:然后右键单击旧包并删除它及其所有数据,同时删除该目录
步骤8:然后重建项目
步骤9:然后您将在项目中发现旧导入包名的一些错误在任何文件中选择旧包名,然后按CTRL+Shift+R,然后在替换框中输入新包名,再按find
步骤10:然后出现如下弹出窗口,并从中选择“所有文件”选项
步骤11:再次重建项目,宾果您的项目包名已更改:)
按Ctrl+Shift+R用新包装替换旧包装。右键单击程序包名称。重构>重命名并重命名为新的