如何在基于 IntelliJ IDEA 的新 IDE Android Studio 中重命名包?
是否包含自动重构?
我想进行批量重构,但我不知道如何。我在 Eclipse 上工作了两年,在 Eclipse 中它是一键式操作。
在 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 需要让这个过程简单一点。
另一个好方法是:首先通过右键单击 Java 文件夹→新建→包来创建一个具有所需名称的新包。
然后,选择所有类并将其拖到新包中。 Android Studio 将在任何地方重构包名。
最后,删除旧包。
完毕。
很重要:
如果使用此方法,您必须手动将 AndroidManifest.xml 和 build.gradle 文件更改为新包。
更改应用程序 ID(现在独立于包名称)可以很容易地一步完成。您不必触摸 AndroidManifest。而是执行以下操作:
右键单击项目的根文件夹。点击“打开模块设置”。转到风味选项卡。将 applicationID 更改为您想要的任何包名称。按确定。
请注意,这不会更改包名称。 Package Name 和 Application ID 的解耦在这里解释:http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename
com.example.sample
更改为 com.example
我用来重命名包名的方法如下:-
第 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 步:再次重建您的项目,宾果您的项目包名已更改 :)
转到您的 AndroidManifest.xml 文件。将光标放在包名称上,如下所示。不要选择它,只需放置它。然后按 Shift + F6,你会得到一个弹出窗口,如下图所示。选择重命名包。输入您的新名称并选择重构。 (注意:因为我的光标在“某物”上,所以只有某物被重命名。)
就这样完成了。
右键单击项目面板中的包。
从上下文菜单中选择重构 -> 重命名。
更改包名称
要重命名软件包名称,您只需转到 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 部分,但您也可以对域执行相同的步骤。
完毕!您已更改包裹名称!
打开文件:app → manifests → AndroidManifest.xml 突出显示包名中要修改的每个部分(不要突出显示整个包名)然后:鼠标右键单击→重构→重命名→重命名包键入新名称并按 (Refactor) 在包名称的每个部分执行这些步骤。打开 (Gradle Script) >> (build.gradle(Modul:app)) 并将 applicationId 更新为您的包名称 打开菜单 (build) 并选择 (Rebuild Project)。
我已经看到投票最多的答案,但我发现这样做有点不同,我尝试做最完整的教程。
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 文件,重构包就可以了!
IntelliJ IDEA 有一个名为“Compact Empty Middle Packages”的选项。选择项目选项卡的选项图标并取消/激活它。
请参阅:How can I change top level package name in IntelliJ IDEA?
选择要重构的包。重构→移动→“将xxx移动到新包”。
安卓工作室 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?
如果您的包名称由两个以上的点分开,例如 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+1
或 Command+1
是快捷方式),并且重命名目录重构正在等待您的预期。
重构以重命名这些目录中的一个或多个以达到您的目标。您应该注意的唯一一件事是,当对话框询问您时,您必须选择目录而不是包。
如果您的项目中有很多类,您将需要一段时间来等待它的自动扫描和重命名。
此外,我猜您需要手动重命名 AndroidManifest.xml 中的包名称,以便该文件中的其他名称可以受益于前缀。
[ALSO],可能需要你将所有com.hello.world.R替换成新的XXX.XXX.XXX.R(简称Command+Shift+R)
重建并运行您的项目以查看它是否工作。并使用“在路径中查找”查找您想要重命名的其他非触摸名称。
好好享受。
请务必前往Sheharyar's great Answer。后面有很多答案和评论,很容易混淆和放弃,但不要。这个答案有效。
简而言之,你做了三件事:
(1) 取消选择 Compact Empty Middle Packages
。
(2) Refactor
然后 Rename
每个旧目录节点,选择 Change Package
(not Change Directory
) 以匹配新包名称。 (请务必预览更改。)
(3) 编辑 build.gradle
文件并使 APPLICATION_ID
匹配新的包名称。
3个步骤快速简便的方法:
1- 打开 MainActivity
或任何其他 java 或 Kotlin 文件。
在顶部有包声明,例如:
包 com.example.myapp;
选择要更改的包部分,然后按 Shift+F6。我个人想更改 example
。
在警告对话框中,选择重命名包,然后插入所需的包名称。
2- 打开 AndroidManifest.xml
并在 <manifest>
标记内将 package
更改为所需的包名称。
3- 打开 build.gradle(Module: app)
并将 applicationId
更改为所需的包名称。
我找到了一种更简单的方法来解决这个问题,它也改变了生成的导入,如 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 将同步,您的包名称应更改为新名称。
我发现这是最简单的一种,它涵盖了生成文件等所有领域。
人们可能犯的常见错误是无法重命名包结构,即当尝试在 com.name.android 级别进行修改时,不可能将 com.name.android 更改为 com.Renamed.android。
为了获得相同的所需更改,请上一级,即 com.name,并且在您重构时将其更改为重命名。这将永远有效。
在 Java 文件夹中选择包名称。 Shift+F6 更改包名称并单击确定。
您的包名称将从所有 Java 文件和清单文件中更改。您必须从 build.gradle
手动更改包名称。
更新答案:2015 年 5 月
好的,我一直在努力在 Android Studio 中克隆和重命名项目,但最终我实现了。以下是要遵循的步骤:
复制项目文件夹,重命名并使用 Android Studio 打开它 从资源管理器重命名模块目录 重命名 projectName.iml 和内容 重命名idea/.name 内容 在您的项目窗格中,单击小齿轮图标 -> 取消选中“Compact Empty Middle Package”为新包名重构 src 目录(重命名包,“不重命名目录”) 在 build.gradle 中重命名应用程序 ID settings.gradle 重命名模块
而已...
包有两个目的。一种是在 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 和清单将使用这个新的包名称。
我在这里找到了另一种可行的方法或一些答案的额外步骤,特别是如果您也想更改域。它适用于 Android Studio 1.4。这就是我所做的:
打开 Manifest.xml 并将包名称更改为您想要的名称。打开您的应用程序 build.gradle 文件并将 defaultConfig 中的应用程序 ID 更改为与清单中相同的名称并重建项目。如果仍然有问题,打开包名下的文件,转到包面包屑(即文件头的包声明)并将光标设置为要更改的域并点击“Shift + F6”,它会出来使用带有多个使用警告的对话框,单击“重命名包”,然后单击“进行重构”,它应该重命名所有内容,包括 R.Java 文件。
因此,例如如果要将“com.example.app”重命名为“com.YourDomain.app”,请打开要重命名的包下的文件,在包面包屑中,将光标设置为域的“example”部分并按 Shift + F6 并将包重命名为“YourDomain”。
我尝试了两个投票最多的解决方案,但发现了一些问题,即使它们在某种程度上都有效。
列表项:新的 package-drag-drop 方法保留了一些不变并产生了一些不希望的效果
列表项:重命名包只改变包名的最后一部分
经过一些实验,我发现以下方法对我很有效。
如果只需要更改包名的最后一部分,请使用 GreyBeardedGeek 概述的方法,即
右键单击“项目”窗格中的包。从上下文菜单中选择重构 -> 重命名
如果您需要更改整个包名,请执行以下操作。
右键单击“项目”窗格中的包。从上下文菜单中选择重构 -> 移动
这将创建一个新的包文件夹(必要时),但会像以前一样保留包名称的最后一部分。如果您需要更改最后一部分,请相应地进行重命名。
另请注意,您可能需要在 build.gradle、manifest 和/或任何 xml 资源文件中修改包名称,甚至在您的代码中(如果硬编码)。毕竟,根据需要执行同步/清理/重建项目。
如何将 com.example.app
重命名为 com.android.app
:
在包 com.example.app 中选择示例 Shift + F6 选择重命名包重命名示例到 android 确认进行重构
最好的方法是编写新的包名并从旧的包名中拖动。
第二种方式,如果您单击 Refactor then move 选项然后重命名包名称,它将重命名包名称然后重建。
在 Build.gradle 中你必须手动进行,如果你重构然后它不会在 Build.gradle 中重命名。
右键单击包-> 重构并更改名称。
您也可以在清单中更改它。有时,如果您更改包名称,但在创建 .apk 文件后,它会显示不同的包名称。那时检查 build.gradle 文件中的“applicationId”。
第一部分包括在 java 文件夹下创建一个新包,然后选择然后将所有源文件从旧包拖动到这个新包。之后,您需要将 android manifest` 中的包名重命名为新包的名称。
在第 2 步中,您需要执行以下操作。除了更改清单中的包名称外,您还需要更改 android studio 中模块 build.gradle 下的 applicationId 中的旧包名称。因此,总而言之,单击“AndroidManifest.xml”下方的 build.gradle 并将 applicationId 的值修改为您的新包名称。
然后,在最顶部,正在构建中。清理你的项目,然后重建。从这里应该没问题。
我建议使用 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
给出了很多答案,但我仍然在尝试。
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
我相信您正在寻找的是重构>移动。您也可以按 F6。
你会得到两个弹出窗口。确保在两者上都选择重命名包。之后,您将弹出一个窗口以放置新的包名称。
请注意,例如,如果您的包名称是 com.example.android.projectname,那么这将允许您将 com.example.android 更改为其他名称。
还有一件事,这也会更新 build.gradle 中的 applicationId。只需确保选中“搜索注释和字符串”和“搜索文本匹配项”复选框以使其正常工作。
选择选项取消选中 Compact Empty Middle Packages 选项。选择要更改的目录(我选择了步骤 6 中显示的“crl”)。 Shift+F6 重命名包 重命名目录 crl 为 crl1 最后点击下图中标记的 Do Refactor 按钮 在此处输入代码 更改完成后
不定期副业成功案例分享
com.example.test
到com.example
com.example.test
中的文件拖到com.example
,然后删除com.example.test
。