如何在基于IntelliJ IDEA的新IDE Android Studio中重命名软件包?
是否包含自动重构?
我想进行大规模重构,但我不知道怎么做。我在Eclipse工作了两年,在Eclipse中它是一个一键操作。
如何在基于IntelliJ IDEA的新IDE Android Studio中重命名软件包?
是否包含自动重构?
我想进行大规模重构,但我不知道怎么做。我在Eclipse工作了两年,在Eclipse中它是一个一键操作。
当前回答
更改程序包名称
要重命名包名,只需转到AndroidManifest.xml文件,并将鼠标光标放在要更改的包名部分的前面。
右键单击>重构>重命名
在新窗口中,按Rename package
更改名称并按Refactor
…然后按底部的Do Refactor。
您的包名通常采用com.domain.appname格式;在本例中,我们更改了appname部分,但您也可以对域执行相同的步骤。
完成!您已更改包名称!
其他回答
右键单击package->refactor并更改名称。
您也可以在清单中更改它。有时,如果您更改包名,但在创建.apk文件后,它会显示不同的包名。此时,检查build.gradle文件中的“applicationId”。
我看过最热门的答案,但我发现这样做有点不同,我尝试做最完整的教程。
在Android Studio中,单击齿轮图标(),然后选择选项:“压缩空中间包”,以在树视图中查看分开的文件夹。
现在选择文件夹,单击右键打开上下文菜单,选择Refactor,然后重命名
建议您重构包:
然后一个窗口将显示项目内的巧合,选择“Do Refactor”:
我们不必手动更改AndroidManifest.xml或build.gradle文件,重构包就可以了!。
问题是:
是否包含自动重构?
我想进行大规模重构,但我不知道怎么做。我在Eclipse工作了两年,在Eclipse中它是一个一键操作。
好吧,几乎只需单击一下即可自动重构,但只需先迈出一小步,即创建新包的一小步。下面是完整的解决方案。
您可以通过创建新包(包括所需的文件夹路径)来重命名包,然后从旧包中拖放(并让Android Studio负责从旧包到新包的各种引用的重构),如下所示:
右键单击应用程序下的java。选择新建并打包选择新包的位置为/app/src/main/java输入新包的全名将创建新包。现在,从旧包拖放到新包。如果您想检查AndroidStudio是否正确执行重构,请预览重构。如果一切看起来都很好,请继续重构。
注意:由于应用程序ID和包名现在是分离的,请注意,以上内容仅用于重命名包名。要更改应用程序ID,可以在build.gradle中执行。
接受的答案对我不起作用。这里有一个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要点
有很多答案,但我仍在尝试。
步骤1:如上图所示,选择设置选项。。。
第2步:选择压缩中间包选项。。。
步骤3:现在展开包,如图所示
步骤4:扩展后,它看起来像
步骤5:选择子包中的任何一个(在或示例或googledevsmsverify中),然后单击Shift+f6按钮。。。
我选择了中间的包示例,因此它将显示如上图所示简单地重命名包并单击重构按钮
步骤6:单击Refactor按钮后,您将看到以下屏幕,单击DO Refactor,然后等待构建渐变。。。
步骤7:转到build.gradle(Mobile:app)并更改applicationID的包名,如图所示
步骤8:只需检查manifest.xml文件中的包。。。
全部完成包是change...@Ambilpura