ChatGPT解决这个技术问题 Extra ChatGPT

在 Android Studio 中重命名包

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

是否包含自动重构?

我想进行批量重构,但我不知道如何。我在 Eclipse 上工作了两年,在 Eclipse 中它是一键式操作。

请看我的回答here。我已经成功地使用我描述的步骤重命名了我的项目。
更改包名称的分步过程... stackoverflow.com/a/46945668/6915572
Sheharyar 的回答按预期工作。即 1. 重构 2. 编辑 build.gradle。但是,您也必须通过更改 strings.xml 文件中的 app_name 属性来跟进它!

S
Smart Manoj

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

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

在您的项目窗格中,单击小齿轮图标 ( ) 取消选中 Compact Empty Middle Packages 选项 您的包目录现在将被分解为单独的目录 单独选择要重命名的每个目录,并且:

右键单击它

选择重构

点击重命名

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

输入新名称并点击重构

点击底部的 Do Refactor

让 Android Studio 更新所有更改

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

现在打开您的 Gradle 构建文件(build.gradle - 通常是应用程序或移动设备)。如果尚未自动更新,请将 defaultConfig 中的 applicationId 更新为新的包名称和同步 Gradle:您可能需要更改清单中的 package= 属性。清洁和重建。完毕!不管怎样,Android Studio 需要让这个过程简单一点。


警告:如果在重命名“com”时选择“全部重命名”,它不仅会将事物重命名为所选模块,还会将所有模块重命名为该项目
如果我需要删除部分包裹怎么办?我的意思是,从 com.example.testcom.example
@Antonio 将 com.example.test 中的文件拖到 com.example,然后删除 com.example.test
这个程序对我有用。我还必须更改 AndroidManifest.xml 以反映新名称。例如 -> package="my.awesome.game" >
如果您使用的是 firebase,请同时更改 google-services.json 中的 package_name。
P
Peter Mortensen

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

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

最后,删除旧包。

完毕。

很重要:

如果使用此方法,您必须手动将 AndroidManifest.xml 和 build.gradle 文件更改为新包。


如果您使用此方法,您可能需要更新您的 Android Manifest 文件以引用新包。非常简单的步骤,但很好的解决方案。
您可能需要重新启动 Android Studio 才能更新 .idea/workspace.xml
您可能还需要更改 build.gradle 以反映新包
好方法,但必须再做两件事(除了更新清单文件)才能使其完全工作,首先必须更改/重命名整个项目中的 R 文件导入,其次 appdebug 使用旧包名称(在工作室的运行窗口中可见) 在 app build.gradle defaultconfig 中添加了 applicationId "com.packagename" ..
@baboo 为了使第一部分更容易,您可以通过按 Ctrl+Alt+O 并选择所有文件,然后单击运行来优化整个项目的文件导入。如果您有许多活动和其他带有 R 文件导入的类,这将特别有用。
L
LarsH

更改应用程序 ID(现在独立于包名称)可以很容易地一步完成。您不必触摸 AndroidManifest。而是执行以下操作:

右键单击项目的根文件夹。点击“打开模块设置”。转到风味选项卡。将 applicationID 更改为您想要的任何包名称。按确定。

请注意,这不会更改包名称。 Package Name 和 Application ID 的解耦在这里解释:http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename


这只会更改 gradle 中的名称,而不会更改其他任何地方。
这是一个圣杯答案!很聪明!
这需要选择为正确答案,因为它是一种非常简单且快速的方法。
这需要接受,其他答案很长,您不能使用其他答案将 com.example.sample 更改为 com.example
如果您尝试更改软件包名称以上传到 Playstore,这适合您。
a
auspicious99

我用来重命名包名的方法如下:-

第 1 步:从 Android Studio 的左侧菜单中选择 Project 选项

https://i.stack.imgur.com/tmSJo.png

第2步:右键单击java并添加一个新包并设置所需的包名称

https://i.stack.imgur.com/wdOLV.png

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

https://i.stack.imgur.com/R2Qck.png

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

https://i.stack.imgur.com/bC1Ry.png

第五步:重命名清单文件中的包名

https://i.stack.imgur.com/nEiPS.png

第 6 步:重命名 build.gradle 文件中的包名

https://i.stack.imgur.com/w6juC.png

第7步:然后右键单击旧包并将其及其所有数据删除,并删除该目录

https://i.stack.imgur.com/cfOhw.png

第 8 步:然后重建您的项目

https://i.stack.imgur.com/GgdT3.png

步骤9:然后你会在你的项目中发现old import packagename的一些错误 在任何文件中选择旧包名并按CTRL + Shift + R ,然后在替换框中输入你的新包名,然后按find

https://i.stack.imgur.com/8QZm5.png

第 10 步:然后出现如下所示的弹出窗口并从中选择“所有文件”选项

https://i.stack.imgur.com/4Yq0G.png

第 11 步:再次重建您的项目,宾果您的项目包名已更改 :)


Replace In Path 不再可用 tru Shift + R 在 Android studio 2.3.3 中,突出显示旧路径,转到 Edit -> Find -> Replace In Path。还要确保更新您的 gradle 文件。干杯
旧包名没有出现任何错误。所以,在第 9 步之后不必做任何事情。谢谢!
如果您没有收到任何错误,请不要执行第 9 步
错误:任务“:app:compileDebugAidl”执行失败。 > java.io.IOException:com.android.ide.common.process.ProcessException:
而不是复制,我只是移动,而是使用这个操作,重建后我没有任何错误。
a
auspicious99

转到您的 AndroidManifest.xml 文件。将光标放在包名称上,如下所示。不要选择它,只需放置它。然后按 Shift + F6,你会得到一个弹出窗口,如下图所示。选择重命名包。输入您的新名称并选择重构。 (注意:因为我的光标在“某物”上,所以只有某物被重命名。)

就这样完成了。


感谢在 Android Studio 1.5.1 上工作它会自动更改包无需创建新包和拖放文件并删除旧包 Blah Blah Blah
@Prince Jayakumar,您的“不要选择它只是放置它”的声明令人困惑。只需放置鼠标光标, shft+f6 将不起作用。如果插入符号在文件中的其他位置,那么您必须单击包名称,然后 shft+f6 将起作用
更改包名的最简单方法!
这是最好的解决方案!!
不工作我按 shift +f6 它不工作
B
Burak Tokak

右键单击项目面板中的包。

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


这对我很有用,还必须更新 AndroidManifest 文件。
Refactor > Rename 只允许我重命名包的最后一部分,例如 com.example.mypackage.app 中的应用程序
我这样做了,但现在它说启动时不存在类。你是怎么改名的?
我使用了“重构”主菜单并单击“重命名”。
@GilliMonsta,您可以在右侧面板单击设置中选择您的应用程序文件夹,然后取消选中 Compact Empty Middle Packages
V
VIISHRUT MAVANII

更改包名称

要重命名软件包名称,您只需转到 AndroidManifest.xml 文件并将鼠标光标放在要更改的软件包名称部分的前面。

https://i.stack.imgur.com/AZous.png

右键单击 > 重构 > 重命名

https://i.stack.imgur.com/1M1rP.png

在新窗口中按重命名包

https://i.stack.imgur.com/Q3J3m.png

更改名称并按重构

https://i.stack.imgur.com/05Udz.png

…然后按底部的 Do Refactor。

https://i.stack.imgur.com/dwBUE.png

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

完毕!您已更改包裹名称!


美丽的答案......快速而准确......没有长步骤。
最好的答案在这里
干得好,但它只替换了部分包,如“com”或任何其他选择!要替换整个字符串/包名称,需要另一种解决方案!
a
auspicious99

打开文件:app → manifests → AndroidManifest.xml 突出显示包名中要修改的每个部分(不要突出显示整个包名)然后:鼠标右键单击→重构→重命名→重命名包键入新名称并按 (Refactor) 在包名称的每个部分执行这些步骤。打开 (Gradle Script) >> (build.gradle(Modul:app)) 并将 applicationId 更新为您的包名称 打开菜单 (build) 并选择 (Rebuild Project)。


我试过这样做,但遇到了障碍。我正在尝试将 com.example.android.package 更改为我自己的域(以 .net 结尾)。我可以更改“示例”和“包”,但不能更改“com”。它也不会重命名任何目录。有小费吗?
@RobertRose,我为您的问题提供了解决方案。你还在努力吗?
我把它放在一边,继续前进,离开了它。这不是生产。为了将来参考,你想出了什么?
如果我有“xxx.mydomain.com”类型的包,第一个不起作用)
美丽的。第二个步骤是必不可少的,通常会在大多数答案中进行检查。
J
Jorgesys

我已经看到投票最多的答案,但我发现这样做有点不同,我尝试做最完整的教程。

https://i.stack.imgur.com/lkezT.png

https://i.stack.imgur.com/y21At.png

现在选择文件夹,点击右键打开上下文菜单,选择Refactor,然后选择Rename

https://i.stack.imgur.com/5bd5x.png

建议您重构包:

https://i.stack.imgur.com/LGYFP.png

然后一个窗口会显示项目内部的巧合,选择"Do Refactor"

https://i.stack.imgur.com/WHRDF.png

我们不必手动更改 AndroidManifest.xml 或 build.gradle 文件,重构包就可以了!


P
Peter Mortensen

IntelliJ IDEA 有一个名为“Compact Empty Middle Packages”的选项。选择项目选项卡的选项图标并取消/激活它。

请参阅:How can I change top level package name in IntelliJ IDEA?


这很有用。 “停用”此功能后,事情变得更加清晰,我可以删除空的包
@ChrisNevill,请问您是如何删除那些空包的?
我想我只是选择了它们并按下了删除。我目前无法重现该问题,因此无法准确记住。
我同意,这真的很有用。应该包含在我看到的关于这个主题的所有不合标准的答案中。
P
Peter Mortensen

选择要重构的包。重构→移动→“将xxx移动到新包”。


这是一个简单的方法
不起作用,将我的包从“com.company.oldname”更改为“com.company.newname.oldname”。看?此方法不允许更改名称的最后一个组件(我尝试了几次)。
P
Pedro Lobito

安卓工作室 2022

分步实施

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

https://media.geeksforgeeks.org/wp-content/uploads/20201020154217/AddLocalHTMLFile1.png

第 2 步:现在单击设置齿轮图标并取消选择 Compact Middle Packages。

https://media.geeksforgeeks.org/wp-content/uploads/20201115194606/Package1.png

第 3 步:现在包文件夹被分成几部分,如下图所示。

https://media.geeksforgeeks.org/wp-content/uploads/20201115194858/Package2.png

第 4 步:现在右键单击第一个包名称 (com) 和 Refactor > Rename。将显示一条警告消息,但请继续并单击重命名当前按钮。

https://media.geeksforgeeks.org/wp-content/uploads/20201115195210/Package3.png

第 5 步:根据您的要求重命名目录名称,然后单击“重构”按钮。

https://media.geeksforgeeks.org/wp-content/uploads/20201115203354/Package4.png

注意:转到 Build > Rebuild Project 以显示更新的名称。

现在您可以看到您的目录名称从 com -> gfg 更改,如下图所示。

https://media.geeksforgeeks.org/wp-content/uploads/20201115203716/Package5.png

第6步:根据您的要求对域扩展名和App文件夹名称执行相同操作。

https://media.geeksforgeeks.org/wp-content/uploads/20201115204336/Package6.png

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

https://media.geeksforgeeks.org/wp-content/uploads/20201115204705/Package7.png

第 7 步:现在转到 Gradle Scripts 中的 build.gradle(模块:app)。在这里更改 applicationId 并单击 Sync Now。并且您已成功重命名您的包名。

https://media.geeksforgeeks.org/wp-content/uploads/20201115205122/Package8.png

来源:How to Rename Package Name in Android Studio?


d
dongxu

如果您的包名称由两个以上的点分开,例如 com.hello.world,而且您没有在 com/com/hello/ 中添加任何内容。您的所有类都放入 com/hello/world/,您可以执行以下步骤在 Android Studio 或 IntelliJ 中重构您的包名称:

[FIRST] 在你的目录下添加一些东西(com/, com/hello/)。您可以通过首先将两个文件添加到包 com.hello.world 来实现这一点,比如说

com.hello.world.PackageInfo1.java com.hello.world.PackageInfo2.java

然后通过将它们分别移动到 com 和 com.hello 来重构它们。您将看到 com 和 com.hello 坐在项目中(Alt+1Command+1 是快捷方式),并且重命名目录重构正在等待您的预期。

重构以重命名这些目录中的一个或多个以达到您的目标。您应该注意的唯一一件事是,当对话框询问您时,您必须选择目录而不是包。

如果您的项目中有很多类,您将需要一段时间来等待它的自动扫描和重命名。

此外,我猜您需要手动重命名 AndroidManifest.xml 中的包名称,以便该文件中的其他名称可以受益于前缀。

[ALSO],可能需要你将所有com.hello.world.R替换成新的XXX.XXX.XXX.R(简称Command+Shift+R)

重建并运行您的项目以查看它是否工作。并使用“在路径中查找”查找您想要重命名的其他非触摸名称。

好好享受。


D
DSlomer64

请务必前往Sheharyar's great Answer。后面有很多答案和评论,很容易混淆和放弃,但不要。这个答案有效

简而言之,你做了三件事:

(1) 取消选择 Compact Empty Middle Packages

(2) Refactor 然后 Rename 每个旧目录节点,选择 Change Package (not Change Directory) 以匹配新包名称。 (请务必预览更改。)

(3) 编辑 build.gradle 文件并使 APPLICATION_ID 匹配新的包名称。


否决这个问题的人确实错过了一些东西,因为我的答案是 Sheharyar 的答案的概要,它得到了 332 个 UPVOTES,而我所做的只是简化它,因为它看起来如此复杂(事实并非如此)。一些目光短浅的人的神经,触发快乐的人。希望看到拒绝投票的理由。毫无疑问,我不会看到它。
好的。截至 3.5 年后,我也许可以看到为什么可能会投反对票,因为它可能并不像以前那样完全清楚(但减少一些懈怠!),但现在肯定是,感谢@Peter Mortensen 的两天-旧的编辑和我的刚刚。
D
Darush

3个步骤快速简便的方法:

1- 打开 MainActivity 或任何其他 java 或 Kotlin 文件。

在顶部有包声明,例如:

包 com.example.myapp;

选择要更改的包部分,然后按 Shift+F6。我个人想更改 example

在警告对话框中,选择重命名包,然后插入所需的包名称。

2- 打开 AndroidManifest.xml 并在 <manifest> 标记内将 package 更改为所需的包名称。

3- 打开 build.gradle(Module: app) 并将 applicationId 更改为所需的包名称。


谢谢你。这非常简单明了。
K
Kevin van Mierlo

我找到了一种更简单的方法来解决这个问题,它也改变了生成的导入,如 com.test.testpackagechange.R,只需要大约一分钟。

您的第一步是打开 Android Studio 并打开全部替换窗口(Mac:cmd + shift + R,Windows 我假设:ctrl + shift + R)。输入您的旧包名称和新包名称下方的名称。单击查找。这可能需要一段时间,因为它也在查看生成的项目。如果它有超过 1000 次点击,只需单击继续。

https://i.stack.imgur.com/0Ghvk.png

完成后,按 Replace All 以将旧包名称替换为新包名称。

https://i.stack.imgur.com/PvHVx.png

现在关闭 Android Studio 并转到 Mac 上的 Finder 或 Windows 上的 Windows Explorer。将文件夹的名称更改为新的包名称,如下所示:

https://i.stack.imgur.com/P6gra.png

现在再次打开 Android Studio。 Gradle 将同步,您的包名称应更改为新名称。

我发现这是最简单的一种,它涵盖了生成文件等所有领域。


P
Peter Mortensen

人们可能犯的常见错误是无法重命名包结构,即当尝试在 com.name.android 级别进行修改时,不可能将 com.name.android 更改为 com.Renamed.android。

为了获得相同的所需更改,请上一级,即 com.name,并且在您重构时将其更改为重命名。这将永远有效。


P
Peter Mortensen

在 Java 文件夹中选择包名称。 Shift+F6 更改包名称并单击确定。

您的包名称将从所有 Java 文件和清单文件中更改。您必须从 build.gradle 手动更改包名称。


如果 Shift+F6 不适合您,那么您可以尝试 Alt+Shift+R 重构包。其余程序相同
S
Sebastian Breit

更新答案:2015 年 5 月

好的,我一直在努力在 Android Studio 中克隆和重命名项目,但最终我实现了。以下是要遵循的步骤:

复制项目文件夹,重命名并使用 Android Studio 打开它 从资源管理器重命名模块目录 重命名 projectName.iml 和内容 重命名idea/.name 内容 在您的项目窗格中,单击小齿轮图标 -> 取消选中“Compact Empty Middle Package”为新包名重构 src 目录(重命名包,“不重命名目录”) 在 build.gradle 中重命名应用程序 ID settings.gradle 重命名模块

而已...


A
Agilanbu

包有两个目的。一种是在 Google Play 商店中唯一标识您的应用。另一种是为构建项目时生成的R.java class 命名包。您可以将第一个用途视为外部包装,将第二个用途视为内部包装。假设您想更改外部包以便在 Play 商店中进行识别,有一种方便的方法可以做到这一点。

在 Android Studio 中,

 choose File -> Project Structure -> Choose your app's module -> Click on the 
 Flavors tab -> change the Application id.

现在,当您构建项目时,您的 APK 和清单将使用这个新的包名称。


P
Peter Mortensen

我在这里找到了另一种可行的方法或一些答案的额外步骤,特别是如果您也想更改域。它适用于 Android Studio 1.4。这就是我所做的:

打开 Manifest.xml 并将包名称更改为您想要的名称。打开您的应用程序 build.gradle 文件并将 defaultConfig 中的应用程序 ID 更改为与清单中相同的名称并重建项目。如果仍然有问题,打开包名下的文件,转到包面包屑(即文件头的包声明)并将光标设置为要更改的域并点击“Shift + F6”,它会出来使用带有多个使用警告的对话框,单击“重命名包”,然后单击“进行重构”,它应该重命名所有内容,包括 R.Java 文件。

因此,例如如果要将“com.example.app”重命名为“com.YourDomain.app”,请打开要重命名的包下的文件,在包面包屑中,将光标设置为域的“example”部分并按 Shift + F6 并将包重命名为“YourDomain”。


a
auspicious99

我尝试了两个投票最多的解决方案,但发现了一些问题,即使它们在某种程度上都有效。

列表项:新的 package-drag-drop 方法保留了一些不变并产生了一些不希望的效果

列表项:重命名包只改变包名的最后一部分

经过一些实验,我发现以下方法对我很有效。

如果只需要更改包名的最后一部分,请使用 GreyBeardedGeek 概述的方法,即

右键单击“项目”窗格中的包。从上下文菜单中选择重构 -> 重命名

如果您需要更改整个包名,请执行以下操作。

右键单击“项目”窗格中的包。从上下文菜单中选择重构 -> 移动

这将创建一个新的包文件夹(必要时),但会像以前一样保留包名称的最后一部分。如果您需要更改最后一部分,请相应地进行重命名。

另请注意,您可能需要在 build.gradle、manifest 和/或任何 xml 资源文件中修改包名称,甚至在您的代码中(如果硬编码)。毕竟,根据需要执行同步/清理/重建项目。


B
Benjamin

如何将 com.example.app 重命名为 com.android.app

在包 com.example.app 中选择示例 Shift + F6 选择重命名包重命名示例到 android 确认进行重构


P
Peter Mortensen

最好的方法是编写新的包名并从旧的包名中拖动。

第二种方式,如果您单击 Refactor then move 选项然后重命名包名称,它将重命名包名称然后重建。

在 Build.gradle 中你必须手动进行,如果你重构然后它不会在 Build.gradle 中重命名。


P
Peter Mortensen

右键单击包-> 重构并更改名称。

您也可以在清单中更改它。有时,如果您更改包名称,但在创建 .apk 文件后,它会显示不同的包名称。那时检查 build.gradle 文件中的“applicationId”。


a
auspicious99

第一部分包括在 java 文件夹下创建一个新包,然后选择然后将所有源文件从旧包拖动到这个新包。之后,您需要将 android manifest` 中的包名重命名为新包的名称。

在第 2 步中,您需要执行以下操作。除了更改清单中的包名称外,您还需要更改 android studio 中模块 build.gradle 下的 applicationId 中的旧包名称。因此,总而言之,单击“AndroidManifest.xml”下方的 build.gradle 并将 applicationId 的值修改为您的新包名称。

然后,在最顶部,正在构建中。清理你的项目,然后重建。从这里应该没问题。


a
auspicious99

我建议使用 Sublime Text(或 Notepad++)。替换 com.one.lastname -> com.two.newname 和 com/one/lastname -> ...\Projects[MyProject] 中的 com/two/newname。并且不要忘记重命名 ...\Projects\MyProject\app\src\main\java\com\one\lastname, ...\Projects\MyProject\app\src\test\java\com\one\lastname和 ...\Projects\MyProject\app\src\androidTest\java\com\one\lastname!

就这样:)

https://i.stack.imgur.com/v12AX.png


a
auspicious99

给出了很多答案,但我仍然在尝试。

https://i.stack.imgur.com/1ZTNa.png

https://i.stack.imgur.com/Lvfcf.png

https://i.stack.imgur.com/GoaaK.png

https://i.stack.imgur.com/jJ77w.png

https://i.stack.imgur.com/vdgD9.png

我选择了中间包示例,因此它将显示如上图简单重命名包并单击重构按钮

https://i.stack.imgur.com/HQFLW.png

https://i.stack.imgur.com/MF8J4.png

https://i.stack.imgur.com/mvcU7.png

第 8 步:只需检查 manifest.xml 文件中的包...

https://i.stack.imgur.com/RPLUf.png

全部完成,包裹正在改变......@Ambilpura


p
phxhawke

我相信您正在寻找的是重构>移动。您也可以按 F6。

你会得到两个弹出窗口。确保在两者上都选择重命名包。之后,您将弹出一个窗口以放置新的包名称。

请注意,例如,如果您的包名称是 com.example.android.projectname,那么这将允许您将 com.example.android 更改为其他名称。

还有一件事,这也会更新 build.gradle 中的 applicationId。只需确保选中“搜索注释和字符串”和“搜索文本匹配项”复选框以使其正常工作。


H
Heinrich Cloete

选择选项取消选中 Compact Empty Middle Packages 选项。选择要更改的目录(我选择了步骤 6 中显示的“crl”)。 Shift+F6 重命名包 重命名目录 crl 为 crl1 最后点击下图中标记的 Do Refactor 按钮 在此处输入代码 更改完成后