如何在基于IntelliJ IDEA的新IDE Android Studio中重命名软件包?
是否包含自动重构?
我想进行大规模重构,但我不知道怎么做。我在Eclipse工作了两年,在Eclipse中它是一个一键操作。
如何在基于IntelliJ IDEA的新IDE Android Studio中重命名软件包?
是否包含自动重构?
我想进行大规模重构,但我不知道怎么做。我在Eclipse工作了两年,在Eclipse中它是一个一键操作。
当前回答
在使用这些技术之一重命名包之后,可能会开始看到错误。
如果/当你的R.java没有正确生成时,你会在项目中收到很多错误,比如错误:找不到符号类R,以及错误:包R不存在。
记住检查应用程序清单xml。清单包名称必须与实际包名称匹配。R.java似乎是从应用程序清单生成的,如果不匹配,可能会导致这些错误。
记住检查<manifestpackage=“com.yourcompany.coolapp”>中的package属性匹配
其他回答
选择选项取消选中“压缩空中间包”选项。选择要更改的目录(我选择了步骤6中显示的“crl”)。移位+F6重命名程序包将目录crl重命名为crl1最后单击下图中标记的Do Refactor按钮在此处输入代码完成更改后
接受的答案对我不起作用。这里有一个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要点
第一部分包括在java文件夹下创建一个新包,然后选择并将所有源文件从旧包拖到这个新包。之后,您需要将android manifest中的包名称重命名为新包的名称。在步骤2中,这是您需要做的。除了更改清单中的包名之外,您还需要更改android studio中模块build.gradle下applicationId中的旧包名。总之,单击“AndroidManifest.xml”下面的build.gradle并将applicationId的值修改为新的包名。然后,在顶部,建造不足。清理项目,然后重建。从这里开始应该很好。
有很多答案,但我仍在尝试。
步骤1:如上图所示,选择设置选项。。。
第2步:选择压缩中间包选项。。。
步骤3:现在展开包,如图所示
步骤4:扩展后,它看起来像
步骤5:选择子包中的任何一个(在或示例或googledevsmsverify中),然后单击Shift+f6按钮。。。
我选择了中间的包示例,因此它将显示如上图所示简单地重命名包并单击重构按钮
步骤6:单击Refactor按钮后,您将看到以下屏幕,单击DO Refactor,然后等待构建渐变。。。
步骤7:转到build.gradle(Mobile:app)并更改applicationID的包名,如图所示
步骤8:只需检查manifest.xml文件中的包。。。
全部完成包是change...@Ambilpura
这很容易做到。只需遵循两个步骤:
右键单击根文件夹,然后单击打开的模块设置。之后,转到口味选项卡并根据需要更改应用程序id。
对于那些认为这只会更改build.gradle文件中的应用程序id的人:
这是谷歌写的
在build.apk的清单中使用的最后一个包是“应用程序id”,它是您的应用程序在设备和Google Play商店中的名称。
and
源代码中用于引用R类和解析任何相关活动/服务注册的包继续称为“包”。
您可以阅读更多http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename