如何在基于IntelliJ IDEA的新IDE Android Studio中重命名软件包?

是否包含自动重构?

我想进行大规模重构,但我不知道怎么做。我在Eclipse工作了两年,在Eclipse中它是一个一键操作。


当前回答

打开文件:应用程序→ 舱单→ AndroidManifest.xml突出显示要修改的包名称中的每个部分(不要突出显示整个包名称),然后:鼠标右键单击→ 重构(Refactor)→ 重命名→ 重命名程序包键入新名称并按(Refactor)在包名称的每个部分执行这些步骤。打开(Gradle脚本)>>(build.Gradle(Modul:app))并将applicationId更新为包名打开菜单(构建)并选择(重建项目)。

其他回答

请尝试以下步骤:

单击设置档位图标并取消选择压缩空中间包现在,我们可以看到每个包文件夹都被分解为多个部分现在右键单击第一个包文件夹>>重构>>重命名现在将显示一个警告,但您可以继续并单击“重命名”包裹之后,输入域名作为软件包名称单击“Do Refactor”现在它已经更改了应用程序的包域名。现在更改根据您的要求提供域名扩展名和应用程序文件夹名称现在在gradle脚本中打开build.gradle(模块:app)。此处更改应用程序id并单击“立即同步”。

*******终于完成了******

接受的答案对我不起作用。这里有一个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要点

我建议使用Sublime Text(或Notepad++)。替换com.one.lastname->com.two.newname和com/one/lastname->com/two/newname。。。\项目[MyProject]。别忘了重命名。。。\项目\MyProject\app\src\main\java\com\one\lastname。。。\Projects\MyProject\app\src\test\java\com\one\lastname和。。。\项目\MyProject\app\src\androidTest\java.com\one\lastname!

仅此而已:)

在使用这些技术之一重命名包之后,可能会开始看到错误。

如果/当你的R.java没有正确生成时,你会在项目中收到很多错误,比如错误:找不到符号类R,以及错误:包R不存在。

记住检查应用程序清单xml。清单包名称必须与实际包名称匹配。R.java似乎是从应用程序清单生成的,如果不匹配,可能会导致这些错误。

记住检查<manifestpackage=“com.yourcompany.coolapp”>中的package属性匹配

首先,您需要转到左侧显示的设置图标。单击该下拉列表并取消选中压缩空中间包

转到AndroidManifest.xml

选择所有包,然后右键单击重构,然后根据需要重命名。然后转到build.gradle,然后使用Android Manifest中的packagename更改Applicationid。

这对我来说很有效