在Android Studio中重命名包

1732

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

是否包含自动重构功能?

我想进行批量重构,但不知道如何操作。我曾在Eclipse中工作了两年,在Eclipse中这是一次单击操作。


请在此处查看我的答案:这里。我已成功按照我所描述的步骤重新命名了我的项目。 - Leigh
可能是重复的问题:在Android Studio上更改项目名称 - Leigh
更改包名的逐步过程...https://stackoverflow.com/a/46945668/6915572 - Shubhamhackz
Sheharyar的答案按预期工作。即1.重构2.编辑build.gradle。但是,您还必须跟进在strings.xml文件中更改app_name属性! - user8066636
55个回答

3506

在Android Studio中,您可以这样做:

例如,如果您想将com.example.app更改为my.awesome.game,则:

  1. 在您的项目面板中,单击小齿轮图标(Gears icon

  2. 取消选中紧凑的空中间包选项

    Compact Empty Middle Packages

  3. 现在,您的包目录将分解为单独的目录

  4. 逐个选择要重命名的每个目录,并执行以下操作:

  • 右键单击它

  • 选择重构

  • 点击重命名

  • 在弹出对话框中,点击重命名包而不是重命名目录

  • 输入新名称并点击重构

  • 在底部点击执行重构

  • 请允许一分钟时间,让Android Studio更新所有更改

  • 注意:在Android Studio中重命名com时,可能会出现警告。这种情况下,请选择全部重命名

    Enter image description here

  1. 现在打开你的 Gradle构建文件 (build.gradle - 通常是appmobile)。 在defaultConfig中更新applicationId为你的新包名,如果它没有自动更新,请同步Gradle:

    重构目录

  2. 你可能需要修改清单文件中的package=属性。

  3. 执行清理并重新构建。

    清理和重新构建

  4. 完成! 无论如何,Android Studio需要使这个过程更加简单。


30
警告:如果在重命名“com”时选择“全部重命名”,它将不仅重命名所选模块中的内容,而且重命名此项目中所有模块中的内容。 - ricky.tribbia
12
如果我需要删除软件包的一部分,应该怎么办?我的意思是从 com.example.testcom.example - Antonio
24
请将com.example.test文件夹中的文件拖动到com.example文件夹中,然后删除com.example.test文件夹。 - Dick Lucas
29
这个步骤对我有用。我还需要更改 AndroidManifest.xml 文件以反映新的名称。例如 -> package="my.awesome.game" > - nevzo
39
如果您正在使用Firebase,请同时在google-services.json中更改您的package_name。 - Samar Ali Qazalbash
显示剩余67条评论

637

另外一种好的方法是:首先通过右键单击Java文件夹→新建来创建一个具有所需名称的新包。

然后,选择并拖动所有类到新包中。Android Studio将在所有地方重构包名。

最后,删除旧包。

完成。

非常重要:

如果你使用此方法,你必须手动更改AndroidManifest.xmlbuild.gradle文件的新包名称。


71
如果你使用这种方法,可能需要更新你的Android清单文件以引用新的包。这是非常简单的一步,是个好的解决方案。 - Dick Lucas
12
你可能需要重新启动Android Studio以更新.idea/workspace.xml文件。 - Christoph
25
您可能需要修改 build.gradle 文件以反映新的包名。 - Samik Bandyopadhyay
39
好的方法,但需要再做两件事情(除了更新清单文件),首先需要更改/重命名整个项目中的 R 文件导入,其次 appdebug 使用了旧的包名(在 Studio 的运行窗口中可见),需要在 app build.gradle defaultconfig 中添加 applicationId "com.packagename"。 - baboo
2
这是减少了工作量的好解决方案。 - Jeelan
显示剩余16条评论

238
改变应用程序ID(现在与包名无关)可以在一步中非常容易地完成。 您不必触摸AndroidManifest。 而是按照以下步骤进行操作:
  1. 右键单击项目的根文件夹。
  2. 点击“打开模块设置”。
  3. 转到Flavours选项卡(在较新的版本中可能称为Default Config)。
  4. 将应用程序ID更改为您想要的包名。按下确定。
请注意,这不会更改包名。包名和应用程序ID的解耦在这里解释: http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename

8
这只会更改 Gradle 中的名称,不会影响其他任何地方。 - Jacob R
6
这是一个至高无上的答案!非常聪明! - sud007
4
由于其简单而快速的操作方式,应将此选项选择为正确答案。 - Ayaz Alifov
7
需要接受这个答案,其他答案过于冗长,而且你不能使用其他答案将 com.example.sample 改为 com.example - Inder Kumar Rathore
3
如果您想要更改应用程序包名称以上传到Play商店,这篇文章适合您。 - sibin
显示剩余18条评论

108
我用的更名包名的方法如下: 步骤1 : 在Android Studio左侧菜单中选择项目选项。

enter image description here

步骤 2: 右键点击 Java 并添加新的包,设置所需的包名称。

enter image description here

步骤 3:输入您的新软件包名称

enter image description here

步骤 4: 将旧包中的所有文件复制并粘贴到新包中

enter image description here

步骤五: 在清单文件中重命名包名

enter image description here

步骤6:在build.gradle文件中重命名包名。

enter image description here

步骤七:然后右键单击旧包并删除其所有数据,以及删除该目录。

enter image description here

步骤8: 然后重新构建您的项目

enter image description here

步骤 9:然后,您将在项目中发现一些旧的导入包名称错误。在任何文件中选择旧的包名称,按下CTRL + Shift + R,在替换框中输入新的包名称,然后按“查找”。

enter image description here

步骤10:接下来会出现一个弹窗,如下图所示,请选择其中的“所有文件”选项。

enter image description here

第11步:重新构建您的项目,恭喜您,您的项目包名称已更改 :)


2
在Android Studio 2.3.3中,通过Shift + R替换路径已不再可用,请突出显示旧路径,转到Edit -> Find -> Replace In Path。同时确保更新您的gradle文件。干杯! - ralphgabb
1
旧的包名没有出现任何错误,所以在第9步之后不需要做任何事情。谢谢! - user3760100
1
如果你没有收到任何错误信息,那么不需要执行第9步。 - Mehroz Munir
1
错误:执行任务':app:compileDebugAidl'失败。
java.io.IOException: com.android.ide.common.process.ProcessException:
- Pablo Cegarra
1
我没有复制,而是移动,并且使用这个操作后,在重新构建后我没有遇到任何错误。 - Cavaleiro
显示剩余3条评论

83
  1. 进入AndroidManifest.xml文件。

  2. 将光标放在包名称上,如下所示。不要选择它,只需放置光标。

    图片描述

  3. 然后按下Shift+F6,会出现一个弹出窗口,如下所示。选择重命名包

    图片描述

  4. 输入新名称并选择重构。 (注意:因为我的光标在“something”上,所以只有“something”被重命名。)

就这样完成了。


1
感谢在Android Studio 1.5.1上工作。它可以自动更改包名,无需创建新包并拖放文件和删除旧包。啦啦啦。 - Zeeshan
1
最简单的更改包名的方法! - Timo Schuck
1
这是最佳解决方案!! - Seb83
1
无法工作,我按Shift + F6它不起作用。 - Ahmad
还有,在gradle文件中需要手动更改应用程序ID。我刚刚做了这个,现在它可以工作了,谢谢。 - UNREAL
显示剩余3条评论

47

项目面板上右键单击包。

从上下文菜单中选择重构 -> 重命名。


1
这对我非常有效,同时也不得不更新AndroidManifest文件。 - physphil
124
重构 > 仅重命名允许我重命名包的最后一部分,例如 com.example.mypackage.app 中的 app。 - GilliMonsta
1
我按照这种方式做了,但现在启动时它说类不存在。你是怎么重命名的? - Dharmik
我已经使用了“重构”主菜单并点击了“重命名”。 - Codebeat
@GilliMonsta,您可以在右侧面板中选择您的应用文件夹,点击“设置”,然后取消勾选“紧凑空中间包”。 - Taranmeet Singh
这个代码可以正常工作,但之后仍需要进行一些清理。只需执行“Build > Clean Project”,然后在整个项目的范围内执行“Find in Path”以查找并替换旧的先前包名称的实例即可。 - lasec0203

40

修改包名


如果要重命名您的包名,您只需要前往AndroidManifest.xml文件并将鼠标光标放在要更改的包名部分之前。


enter image description here


右键单击 > 重构 > 重命名


enter image description here


在新窗口中按“重命名包”


enter image description here


更改名称并按“重构”


enter image description here


...然后在底部按“执行重构”。


enter image description here


您的包名通常采用 com.domain.appname 的格式;在本示例中,我们更改了 appname 部分,但您也可以执行相同步骤来更改域。

完成!您已成功更改了包名!


4
美丽的回答...快速而精确.. 没有冗长的步骤。 - Noman
3
最佳答案在这里。 - Jonathan Applebaum
1
做得好,但它只替换了包的一部分,比如“com”或其他选择的部分!要替换整个字符串/包名需要另一个解决方案! - CryptoCode
按照这些步骤(没有意识到它们已经过时了),Android Studio 尝试构建了 2 分钟,然后失败并显示错误:“不再支持通过源 AndroidManifest.xml 中的 package 属性设置命名空间。” 好吧,该死的 Android Studio,你显然知道我在 尝试 做什么!为什么不直接 它,然后如果你真的必须的话再给一个警告弹窗呢? - ETL

35

Android Studio 2023


逐步实施

第一步:要在Android Studio中重命名包名,首先以Android模式打开您的项目,如下图所示。

第二步:现在点击设置齿轮图标,然后取消选择紧凑中间包

第三步:现在,如下图所示,packages文件夹已被分成多个部分。

第四步:现在右键单击第一个包名(com),然后选择“重构 > 重命名”。会显示一个警告消息,但请继续点击“重命名当前”按钮。

第五步:根据您的需求重新命名目录名称,然后点击“重构”按钮。

请注意:转到“Build > Rebuild Project”以显示更新后的名称。
现在,您可以在下面的图像中看到您的目录名称已从“com”更改为“gfg”。

第六步:根据您的需求,对于域名扩展名和应用程序文件夹名称也进行相同操作。

现在你可以看到包名已经从com.example.pulltorefreshwithlistview更改为gfg.geeksforgeeks.listview,如下图所示。

第七步:现在转到Gradle Scripts中的build.gradle(Module: app)。在这里更改applicationId并点击“立即同步”。您已成功更改包名。


来源:


它留下了旧包名称的空文件夹,并没有更改所有导入。在具有多个模块的实际项目中尝试一下。 - user924
1
终于,我追随了这一个。 - Maruf Alam
1
终于,我追上了这个。 - undefined
我在我的模块 build.gradle 文件中还有一个 applicationId 和 namespace 的条目,我不得不进行更改。 - hBrent

33
  1. 打开文件:

    app → manifests → AndroidManifest.xml

    图片描述

    选择要修改的包名称中的每个部分(不要选择整个包名称),然后:

    • 鼠标右键单击→重构→重命名→重命名包
    • 输入新名称并按(重构)

    在包名称的每个部分执行这些步骤。

    图片描述

  2. 打开(Gradle Script) >> (build.gradle(Modul:app))

    并将applicationId更新为您的包名称

    图片描述

  3. 打开菜单(build),选择(Rebuild Project)。


我尝试做这件事,但遇到了问题。我正在尝试将com.example.android.package更改为我的自己的域名(以.net结尾)。我可以更改“example”和“package”,但无法更改“com”。它也不会重命名任何目录。有什么建议吗? - Rob Rose
@RobertRose,我有一个解决方案可以帮助你解决问题。你还在处理这个问题吗? - The Original Android
我把它放在一边,然后继续前进并离开了。这不是生产环境。为了以后参考,你有什么想法? - Rob Rose
如果我有“xxx.mydomain.com”这样的包,第一个就不起作用。 - Jemshit Iskenderov
美丽。第二步是必要的,但通常在大多数答案中被忽略了。 - AlleyOOP

20

我已经看过最受欢迎的答案,但我发现有些不同,我尝试做最完整的教程。

从Android Studio中单击齿轮图标( Gears icon ),然后选择选项:"紧凑的空中间包",以树状视图查看文件夹分开。

introducir la descripción de la imagen aquí

现在选择文件夹,点击右键打开上下文菜单,选择重构,然后选择重命名

introducir la descripción de la imagen aquí

你将被建议重构包:

introducir la descripción de la imagen aquí

然后一个窗口会显示项目内的匹配项,选择"Do Refactor"

introducir la descripción de la imagen aquí

我们不需要手动更改AndroidManifest.xml或build.gradle文件,重构包会完成这项工作!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接