在Android Studio中重命名包

ram*_*ixp 1252 android-studio

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

是否包含自动重构?

我想进行批量重构,但我不知道如何.我在Eclipse工作了两年,在Eclipse中工作了一次.

She*_*yar 2597

在Android Studio中,您可以执行以下操作:

例如,如果要更改com.example.appmy.awesome.game,则:

  1. 在" 项目"窗格中,单击"小齿轮"图标(齿轮图标 )

  2. 取消选中/取消选择该Compact Empty Middle Packages选项

    紧凑的空中间包

  3. 您的包目录现在将在各个目录中分解

  4. 单独选择要重命名的每个目录,并:

    • 右键单击它
    • 选择 Refactor
    • 点击 Rename
    • 在弹出对话框中,单击Rename Package而不是重命名目录
    • 输入新名称并点击Refactor
    • 单击底部的Do Refactor
    • 等一下让Android Studio更新所有更改
    • 注意:com在Android Studio中重命名时,可能会发出警告.在这种情况下,请选择" 全部重命名"

    在此输入图像描述

  5. 现在打开Gradle Build File(build.gradle- 通常appmobile).更新applicationIddefaultConfig您的新软件包名称和同步摇篮,如果尚未自动更新:

    重构目录

  6. 您可能需要更改package=清单中的属性.

  7. 清洁和重建.

  8. 完成!无论如何,Android Studio需要使这个过程更简单一些.

  • 谢谢!如此愚蠢,他们将此设置为默认值.为什么崩溃包,所以用户不友好它让我心烦意乱. (52认同)
  • 清洁和重建. (26认同)
  • 这个程序对我有用.我还必须更改AndroidManifest.xml以反映新名称.例如 - > package ="my.awesome.game"> (26认同)
  • 警告:如果在重命名"com"时选择"全部重命名",它不仅会将内容重命名为所选模块,还会将所有模块重命名为此项目 (17认同)
  • @Antonio将`com.example.test`中的文件拖到`com.example`然后删除`com.example.test`. (14认同)
  • 如果您使用的是firebase,请在google-services.json中更改您的package_name. (6认同)
  • 如果我需要删除部分包裹,我该怎么办?我的意思是,从`com.example.test`到`c​​om.example` (5认同)
  • 仅供参考:Android Studio 允许您将包名称也设置为大写字母,但随后会出现格式错误的 Android 清单错误。所以包名必须是小写字母。 (3认同)
  • 如果我想将`com.example.new.app`更改为`com.example.app`该怎么办? (3认同)
  • 根据你的回答我做完之后,我最终将所有R进口替换为新进口.Android Studio没有为我这样做.所以在我的所有文件中#import xyzR; 定义后,我用#import abcR替换它; 之后它起作用了. (2认同)
  • 它在 Android studio 2.1 中不起作用。Android studio 只是默默地拒绝重命名任何东西。 (2认同)
  • 我仍然不明白为什么我们需要取消选择“Compact Empty Middle Packages”来执行此操作。**这是一个 AS 错误吗?** 听起来肯定是这样,因为选择全名(以各种方式),只会改变包名的尾部。 (2认同)
  • 在我的情况下,第一步是隐藏空中包,感谢好友 (2认同)
  • 我的问题是:如果要删除一个包名称层:从com.example.app到example.app,该怎么办?我陷入了第4步。 (2认同)
  • 小心!如果您使用google analytic json,请更改该json文件中使用的软件包名称。 (2认同)
  • 你六年前写的一个答案让我脸上露出了微笑。谢谢。顺便问一下,现在有更好的方法吗? (2认同)
  • **齿轮图标改变了!**现在看起来像**`⁝`** (2认同)

use*_*4D4 527

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

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

最后,删除旧包.

完成.

很重要:

如果使用此方法,则必须手动将AndroidManifest.xmlbuild.gradle文件更改为新包.

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

hwa*_*wat 189

更改应用程序ID(现在独立于程序包名称)可以在一个步骤中轻松完成.您无需触摸AndroidManifest.而是执行以下操作:

  1. 右键单击项目的根文件夹.
  2. 单击"打开模块设置".
  3. 转到Flavors选项卡.
  4. 将applicationID更改为您想要的任何包名称.按确定.

请注意,这不会更改包名称.这里解释了包名称和应用程序ID的分离:http: //tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename

  • 这只会改变gradle中的名称,而不是其他地方. (7认同)
  • 这需要被接受,其他答案很长,你不能使用其他答案将`com.example.sample`改为`com.example` (5认同)
  • 这是一个圣杯的答案!很聪明! (4认同)
  • 这需要被选为正确的答案,因为它是非常简单和快速的方式. (3认同)
  • 如果您尝试更改包名称以上传到 Playstore,这适合您。 (2认同)

Meh*_*nir 68

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

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

在此输入图像描述

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

在此输入图像描述

第3步 :输入新的包名称

在此输入图像描述

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

在此输入图像描述

步骤5 :重命名清单文件中的包名称

在此输入图像描述

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

在此输入图像描述

步骤7 :然后右键单击旧包并删除它的所有数据,并删除该目录

在此输入图像描述

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

在此输入图像描述

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

在此输入图像描述

步骤10 :然后弹出如下所示,并从中选择所有文件选项

在此输入图像描述

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

  • 在 Android studio 2.3.3 中,替换路径不再可用,请突出显示旧路径,转到编辑 -> 查找 -> 替换路径。另请确保更新您的 gradle 文件。干杯 (2认同)

Pri*_*mar 45

  1. 转到AndroidManifest.xml文件.
  2. 将光标放在包名称中,如下所示.不要选择它,只需放置它.

    在此输入图像描述

  3. 然后按Shift+ F6您将看到如下所示的弹出窗口,选择 重命名包.

    在此输入图像描述

  4. 输入新名称,然后选择" 重构".(注意,因为我的光标在"某物"上,所以只重命名了.)

就是这样.


Gre*_*eek 42

右键单击项目面板上的包.

从上下文菜单中选择Refactor - > Rename.

  • Refactor> Rename只允许我重命名包的最后一部分,例如com.example.mypackage.app中的app (114认同)

Ped*_*ito 39

Android Studio 2023


逐步实施

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

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

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

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

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

注意:转到“构建”>“重建项目”以显示更新的名称。

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

步骤6:根据您的要求对域名扩展和应用程序文件夹名称进行相同的操作。

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

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


来源:


小智 25

  1. 打开文件:

    app→manifeststs→AndroidManifest.xml

    在此输入图像描述

    突出显示要修改的包名称中的每个部分(不要突出显示整个包名称),然后:

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

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

    在此输入图像描述

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

    并将applicationId更新 为您的包名称

    在此输入图像描述

  3. 打开菜单(构建)并选择(重建项目).


Vis*_*ani 21

更改包名称


要重命名您的包名,您所要做的就是转到您的AndroidManifest.xml文件并将鼠标光标放在要更改的包名部分前面。


在此处输入图片说明


右键单击 > 重构 > 重命名


在此处输入图片说明


在新窗口中按重命名包


在此处输入图片说明


更改名称并按重构


在此处输入图片说明


...然后按底部的 Do Refactor。


在此处输入图片说明


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

完毕!您已更改包名称!

  • 最佳答案在这里 (3认同)
  • 美丽的答案...快速而准确..没有长步骤。 (2认同)

小智 16

IntelliJ IDEA有一个名为"Compact Empty Middle Packages"的选项.选择" 项目"选项卡的选项图标,然后取消激活它.

请参阅:如何在IntelliJ IDEA中更改顶级包名称?


hoo*_*oot 16

选择要重构的包.重构移动"将xxx移动到新包".

  • 不起作用,将我的包从"com.company.oldname"更改为"com.company.newname.oldname".看到?此方法不允许更改名称的最后一个组件(我尝试了几次). (4认同)

Jor*_*sys 13

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

从Android Studio点击齿轮图标( 齿轮图标)然后选择选项:"Compact Empty Middle Packages",以查看树视图中分隔的文件夹.

介绍lacripcióndela imagenaquí

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

介绍lacripcióndela imagenaquí

建议您重构包裹:

介绍lacripcióndela imagenaquí

然后一个窗口将显示proyect内部的巧合,选择"Do Refactor":

介绍lacripcióndela imagenaquí

我们不必手动更改AndroidManifest.xml或build.gradle文件,重构包将完成工作!


Phu*_* VR 13

我也很难更改项目的包名称。尤其是大项目。有很多事情要做,但这些工作真的很无聊。我一直在 IntelliJ IDEA 和 Android Studio 上开发一个插件。它将帮助您自动更改包名称。它被称为 Android Package Renamer

\n

安装

\n
    \n
  • 使用IDE内置插件系统:

    \n

    Settings/Preferences> Plugins> Marketplace> Search for "Android Package Renamer">\nInstall Plugin

    \n
  • \n
  • 手动:

    \n

    下载最新版本并使用手动安装\n Settings/Preferences> Plugins> \xe2\x9a\x99\xef\xb8\x8f>Install plugin from disk...

    \n
  • \n
\n

用法

\n
    \n
  1. 打开您的项目。
  2. \n
  3. 单击 ->文件->重命名包
  4. \n
  5. 输入您要更改的包。
  6. \n
  7. 单击“确定”
  8. \n
  9. 将项目与 Gradle 文件同步使缓存无效
  10. \n
\n

这个插件可以重命名包(它可以做更多):

\n
    \n
  • com.android.example -> org.nickseven.product
  • \n
  • com.android.example -> org.nickseven
  • \n
  • com.android.example -> org.nickseven.product.native
  • \n
  • com.android.etc.nick.d -> org.android.otd.nick.d
  • \n
\n

如果这个插件对你有帮助或者有错误,可以通过下面的GitHub联系我

\n


Dar*_*ush 12

快速简单的方法只需 3 步:

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

顶部有包声明,例如:

包com。example.myapp;

选择要更改的包部分并按Shift+F6。我个人想改变example

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

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

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


don*_*gxu 8

如果你的包名是两个以上的点分开,说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
Run Code Online (Sandbox Code Playgroud)

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

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

  • 如果您的项目中有很多课程,则需要一段时间才能等待其自动扫描和重命名.

  • 此外,您需要手动重命名AndroidManifest.xml中的包名称,我猜这个文件中的其他名称可以使前缀受益.

  • [另外],它可能需要你替换所有com.hello.world.R新的XXX.XXX.XXX.R(Command+Shift+R简称)

  • 重建并运行您的项目以查看它是否有效.并使用"在路径中查找"查找您要重命名的其他非触摸名称.

  • 好好享受.


小智 7

包有两个目的。一是在 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.
Run Code Online (Sandbox Code Playgroud)

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


ssg*_*orm 7

我尝试了两个投票最高的解决方案,但发现了一些问题,尽管两者都在某种程度上有效。

  • 列表项:新的打包拖放方法保留了一些不变并产生了一些不良效果
  • 列表项:重命名包仅更改包名的最后部分

经过一些实验,我发现以下方法对我来说效果很好。

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

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

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

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

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

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


use*_*929 6

  • 第一部分包括在该java文件夹下创建一个新包,然后选择并将所有源文件从 拖到old packagenew package。之后,您需要将rename the package name in android “manifest”添加到新包的名称中。

  • 在第 2 步中,您需要执行以下操作。applicationId除了更改.build.gradlemanifest总之,单击build.gradle“AndroidManifest.xml”下方的值并将 的值修改applicationId为新的包名称。

  • 然后,在最顶部的下面buildclean那么你的项目rebuild。从这里开始应该没问题。


小智 6

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

第二种方式,如果您单击“重构然后移动”选项然后重命名包名称,它将重命名包名称然后重建。

在Build.gradle中你必须手动执行,如果你重构那么它不会在Build.gradle中重命名。


小智 6

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

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


Яро*_*ров 6

我建议使用Sublime Text(或Notepad++)。替换 ...\Projects[MyProject] 中的 com.one.lastname -> com.two.newname 和 com/one/lastname -> 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!

就这样:)

截屏


And*_*off 6

如何重命名com.example.appcom.android.app

  1. 在包中com.example.app选择示例

  2. Shift+F6

  3. 选择rename package

  4. 将示例重命名为 android

  5. 确认do refactor


DSl*_*r64 5

请务必参考Sheharyar的绝妙答案。随之而来的是太多的答案和评论,很容易造成困惑和放弃,但不要这样。这个答案有效

简而言之,您要做三件事

(1)取消选择Compact Empty Middle Packages

(2)Refactor然后Rename通过选择Change Packagenot Change Directory)来匹配新的程序包名称,每个旧目录节点。(请确保预览更改。)

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

  • 谁对此表示反对,确实是什么,因为我的答案是Sheharyar的答案的概要,该答案得到了332支持,而我所做的只是简化了它,因为它看起来是如此复杂(不是)。一些近视,触发快乐的人的神经。希望看到不赞成的理由。毫无疑问,我不会看到它。 (3认同)

Shi*_*d T 5

常见的错误,人们可以提出的是,即它是不可能改变一个不能重命名封装结构com.name.androidcom.Renamed.android当一个人试图在修改com.name.android水平。

为了具有相同的所需更改,请向上一层即com.name,在此处重构时将其更改为Renamed。这将始终有效。


Seb*_*eit 5

更新回答:2015年5月

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

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

而已...


iro*_*xxx 5

我发现了另一种可行的方法,或者对此处的某些答案采取了额外的步骤,特别是如果您也想更改域。它适用于Android Studio 1.4。这是我所做的:

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

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


小智 5

  1. 在Java文件夹中选择包名称。
  2. Shift+F6
  3. 更改软件包名称,然后单击确定OK

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


Kev*_*rlo 5

我已经找到了解决此问题的简便方法,该方法还更改了生成的导入,例如com.test.testpackagechange.R,仅需一分钟。

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

在此处输入图片说明

完成此操作后,按“全部替换”将旧的软件包名称替换为新的软件包名称。

在此处输入图片说明

现在关闭Android Studio,然后转到Mac上的Finder或Windows上的Windows资源管理器。将文件夹的名称更改为新的程序包名称,如下所示:

在此处输入图片说明

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

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


Amb*_*mar 5

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

步骤1:如上图所示,选择设置选项... 在此输入图像描述

第 2 步:选择紧凑型中间包选项... 在此输入图像描述

步骤 3:现在如图所示展开包 在此输入图像描述

第4步:展开后,它看起来像这样 在此输入图像描述

第 5 步:选择子包上的任何一个(在 或 example 或 googledevsmsverify 中),然后单击 Shift+f6 按钮... 在此输入图像描述

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

在此输入图像描述

第6步:单击Refactor按钮后,您将看到以下屏幕,单击DO Refactor,然后等待构建gradle... 在此输入图像描述

步骤7:转到build.gradle(Mobile:app)并更改applicationID的包名称,如图所示 在此输入图像描述

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

在此输入图像描述

一切都完成了,包就变了......@Ambilpura


Vij*_*jay 5

有两件事 - 包名称和应用程序 ID。

对我来说最简单、最满意的方法就是这个,

在此输入图像描述

你能看到突出显示的行“vijayjangid”,它之前是“example”。我所做的只是使用 refractor 重命名了 example,并且 android studio 完成了所有工作。

第一部分完成。

现在,将 defaultConfig 括号中的应用程序 ID 重命名为与重命名示例文件夹的名称相同。确保在 firebase、Aws、realm 等云服务中重命名包名称和 ID。

就这样,你已经完成了,投票最多的答案是旧的,我们需要更新答案。