重命名Android Studio中的程序包


1360

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

是否包含自动重构?

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


在这里查看我的答案。我已经成功地使用上述步骤对我的项目进行了重命名。
Leigh 2014年


更改软件包名称的分步过程... stackoverflow.com/a/46945668/6915572
Shubham Soni

Sheharyar的回答符合预期。即1.重构2.编辑build.gradle。但是,您还必须通过更改strings.xml文件中的app_name属性来跟进!
Suhas Mallya

Answers:


2845

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

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

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

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

    紧凑的空中间包装

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

  4. 分别选择要重命名的每个目录,然后:

    • 右键点击
    • 选择 Refactor
    • 点击 Rename
    • 在弹出对话框中,单击Rename Package代替“重命名目录”
    • 输入新名称并点击“ 重构”
    • 单击底部的执行重构
    • 请稍等一下,让Android Studio更新所有更改
    • 注意:com在Android Studio中重命名时,它可能会发出警告。在这种情况下,请选择“ 重命名”

    在此处输入图片说明

  5. 现在打开您的Gradle构建文件build.gradle-通常appmobile)。如果尚未自动更新包applicationId中的defaultConfig,请将该中的更新为新的包名称和同步等级:

    重构目录

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

  7. 清理并重建。

  8. 做完了!无论如何,Android Studio需要使此过程更加简单。


31
清理并重建。
Sheharyar 2015年

19
警告:如果在重命名为“ com”时选择“重命名”,则不仅将事物重命名为所选模块,还将重命名为该项目的所有模块
ricky.tribbia

17
@Antonio拖动文件com.example.testcom.example,然后删除com.example.test
迪克·卢卡斯

27
这个程序对我有用。我还必须更改AndroidManifest.xml以反映新名称。例如-> package =“ my.awesome.game”>
nevzo

10
如果您使用的是Firebase,请同时在google-services.json中更改package_name。
Samar

550

另一个好方法是:首先创建一个新包与Java的文件夹→右键单击所需的名称新建包装

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

最后,删除旧软件包。

做完了

很重要:

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


67
如果使用此方法,则可能需要更新Android Manifest文件以引用新软件包。虽然非常简单,但是很好的解决方案。
迪克·卢卡斯

10
您可能必须重新启动Android studio才能更新.idea / workspace.xml
Christoph

24
您可能还需要更改build.gradle以反映新软件包
Samik Bandyopadhyay

35
好的方法,但还需要做2件事(除了更新清单文件)才能使其完全正常工作,首先必须在整个项目中更改/重命名R文件的导入,其次appdebug使用的是旧包名(在Studio的运行窗口中可见) )在应用程序的build.gradle defaultconfig ..加入的applicationID “com.packagename”
baboo

1
@baboo为了简化第一部分,您可以通过按Ctrl + Alt + O并选择所有文件,然后单击“运行”来优化整个项目的文件导入。如果您有许多活动以及带有R文件导入的其他类,则这特别有用。
塞缪尔·拉比诺维兹

200

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

  1. 右键单击项目的根文件夹。
  2. 点击“打开模块设置”。
  3. 转到“风味”选项卡。
  4. 将applicationID更改为所需的任何软件包名称。按确定。

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


8
这只会更改gradle中的名称,而不会更改其他任何地方。
Jacob R

4
这是一个圣杯答案!很聪明!
sud007

4
由于这是非常简单快速的方法,因此需要选择它作为正确答案。
Ayaz Alifov

6
这需要接受,其他答案很长,您不能更改com.example.samplecom.example使用其他答案
Inder Kumar Rathore 2015年

1
这是正确的答案。用最少的时间像魅力一样工作
sunil 2016年

77

我用来重命名程序包名称的方法很简单,如下所示:

步骤1 :从Android Studio的左侧菜单中选择“项目”选项

在此处输入图片说明

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

在此处输入图片说明

步骤3 :输入新的套件名称

在此处输入图片说明

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

在此处输入图片说明

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

在此处输入图片说明

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

在此处输入图片说明

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

在此处输入图片说明

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

在此处输入图片说明

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

在此处输入图片说明

步骤10 :然后出现一个弹出窗口,如下所示,然后从中选择All files(所有文件)选项。

在此处输入图片说明

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


1
在Android Studio 2.3.3中tru Shift + R不再可用“替换路径”,突出显示旧路径,转到“编辑”->“查找”->“替换路径”。另外,请确保更新gradle文件。干杯
ralphgabb17年

旧软件包名称未出现任何错误。因此,在第9步之后无需执行任何操作。谢谢!
user3760100

如果没有任何错误,请不要执行第9步
Mehroz Munir

1
错误:任务':app:compileDebugAidl'的执行失败。> java.io.IOException:com.android.ide.common.process.ProcessException:
Pablo Cegarra

除了复制以外,我只是移动了,而通过使用此操作,重建后我没有任何错误。
卡瓦莱罗

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

    在此处输入图片说明

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

    在此处输入图片说明

  4. 输入新名称,然后选择重构。(请注意,由于我的光标位于“某物”上,因此仅重命名了某物。)

完成了。


1
感谢在Android Studio 1.5.1上工作,它会自动更改程序包无需创建新程序包,拖放文件并删除旧程序包Blah Blah Blah
Shan Xeeshi

@Prince Jayakumar,您的“不要只选择放置它”的陈述令人困惑。只需将鼠标光标放在shft + f6上将不起作用。如果插入符号在文件中的其他位置,则必须单击包名称,然后shft + f6可以正常工作
Prabs

更改软件包名称的最简单方法!
Timo Schuck

完美地在Android Studio 3.5上工作
Abigail La'Fay

尽可能少地完成软件包和应用程序ID的重命名!谢谢。
user1608385 '19

43

在“ 项目面板”上的软件包上单击鼠标右键。

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


1
这对我来说非常有效,也必须更新AndroidManifest文件。
physphil 2014年

115
Refactor> Rename只允许我重命名包的最后一部分,例如com.example.mypackage.app中的应用程序
GilliMonsta 2014年

1
我是这样做的,但是现在它说在启动时该类不存在。您是如何重命名的?
Dharmik 2014年

我使用了“重构”主菜单,然后单击“重命名”。
Codebeat 2015年

@GilliMonsta,您可以在右侧面板单击设置中选择您的应用程序文件夹,然后取消选中Compact Empty Middle Packages
Taranmeet Singh

25
  1. 打开文件:

    应用→清单→AndroidManifest.xml

    在此处输入图片说明

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

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

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

    在此处输入图片说明

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

    并将applicationId更新 为您的包名称

    在此处输入图片说明

  3. 打开菜单(构建),然后选择(重建项目)。


我尝试这样做,但遇到了障碍。我正在尝试将com.example.android.package更改为我自己的域(以.net结尾)。我可以更改“ example”和“ package”,但不能更改“ com”。它也不会重命名任何目录。有小费吗?
罗伯·罗斯

@RobertRose,我有一个解决您的问题的方法。您还在努力吗?
原始Android

我把它放在一旁,然后继续就走了。这不是生产。为了将来参考,您想到了什么?
罗布·罗斯

如果我拥有“ xxx.mydomain.com”这类软件包,则第一个无法正常工作)
Jemshit Iskenderov

美丽。第二步很重要,通常会在大多数答案中查看。
AlleyOOP 2015年

16

IntelliJ IDEA有一个称为“紧凑空中间包”的选项。选择“ 项目”选项卡的选项图标,然后取消/激活它。

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


1
这很有用。“停用”此功能后,情况变得更加清晰,我可以删除空的程序包
Chris Nevill 2014年

@ChrisNevill,请问您如何删除那些空包?
beretis

我想我只是选择了它们,然后按了Delete键。我目前无法重现该问题,因此无法确切记住它。
克里斯·内维尔

我同意,这确实很有用。应该包括在我所看到的有关该主题的所有不合标准的答案中。
iaindownie 2015年

16

选择将被重构的软件包。重构移动“将xxx移动到新软件包”


这是d的简便方法
droid kid 2015年

4
不起作用,将我的软件包从“ com.company.oldname”更改为“ com.company.newname.oldname”。看到?此方法不允许更改名称的最后一个组成部分(我尝试了几次)。
Jose Manuel AbarcaRodríguez2015年

13

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

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

图像描述入门

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

图像描述入门

建议您重构软件包:

图像描述入门

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

图像描述入门

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


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

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

  • 重构以重命名这些目录中的一个或多个,以实现您的目标。您在这里唯一要注意的是,当对话框询问您时,您必须选择目录而不是Packages。

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

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

  • [ALSO],可能需要您全部替换com.hello.world.R为新的XXX.XXX.XXX.RCommand+Shift+R简称)

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

  • 好好享受。

6

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

简而言之,您要做三件事

(1)取消选择Compact Empty Middle Packages

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

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


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

好。在3.5年后的今天,我也许能明白为什么为什么要投下票,因为它可能还不是很清楚,因为它已经过去了(但是减少了一些懈怠!),但是现在可以肯定了,这要归功于@Peter Mortensen的两天时间-old编辑并立即挖掘。
DSlomer64 '19

5

更新答案:2015年5月

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

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

而已...


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将同步,您的包名称应更改为新的。

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


5

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

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


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


1
如果Shift + F6不适合您,则可以尝试使用Alt + Shift + R来重构软件包。其余过程相同
未捕获的异常

5

变更套件名称


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


在此处输入图片说明


右键单击>重构>重命名


在此处输入图片说明


在新窗口中按重命名包


在此处输入图片说明


更改名称并按重构


在此处输入图片说明


…,然后按底部的“执行重构”。


在此处输入图片说明


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

做完了!您更改了包裹名称!


4

我尝试了两个最受好评的解决方案,但是尽管它们在某种程度上都起作用,但还是发现了一些问题。

  • 列表项:新的package-drag-drop方法保持不变,并产生了一些不良效果
  • 列表项:重命名软件包仅更改软件包名称的最后一部分

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

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

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

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

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

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

还要注意,您可能需要在build.gradle,manifest和/或任何xml资源文件中,甚至在您的代码(如果经过硬编码)中修改包名称。完成所有这些之后,根据需要执行Sync / Clean / Rebuild项目。



4

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

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


4

我建议使用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!

就这样:)

屏幕截图


3

我相信您正在寻找的是Refactor> Move。您也可以按F6键。

您将看到两个弹出窗口。确保两者都选择重命名程序包。之后,您将弹出一个窗口,放置新的程序包名称。

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

还有一件事,这也将更新build.gradle中的applicationId。只需确保选中“搜索注释和字符串”和“搜索文本出现”复选框即可。


3

快速简便的方法:

1-打开MainActivity.java或任何可用的Java文件。

顶部有包声明,例如:

包com。example.myapp;

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

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

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

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


谢谢。这非常简单明了。
伊什沃尔·卡纳尔(Ishwor Khanal)

3
  1. 选择选项 在此处输入图片说明

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

  3. 选择要更改的目录(我选择了步骤6中所示的“ crl”)。
  4. Shift+F6
  5. 重命名包
  6. 将目录crl重命名为crl1 在此处输入图片说明

  7. 最后单击下面图像中标记的“执行重构”按钮,在 在此处输入图片说明 此处输入代码

  8. 完成更改后 在此处输入图片说明


3

请尝试以下步骤:

  1. 单击设置齿轮图标,然后取消选择紧凑空中间包装
  2. 现在我们可以看到每个包文件夹都被分成几部分
  3. 现在,右键单击第一个包文件夹>>>重构>>>重命名
  4. 现在将显示警告,但是您继续单击“重命名程序包”
  5. 之后,输入您的域名作为包名称
  6. 点击“重构”
  7. 现在,它已经更改了应用程序的程序包域名。现在根据您的要求更改域扩展名和App文件夹名称
  8. 现在,在Gradle脚本中打开build.gradle(模块:app)。在这里更改应用程序ID,然后单击立即同步。

*******最后完成了******


3
  1. Ctrl+ Shift+R

  2. 用新的旧包装替换旧的包装。

  3. 右键单击软件包名称。

  4. Refactor> Rename并重命名为新的



3
  • 第一部分由下创建一个新包的java文件夹,然后选择从拖动所有源文件old package到这个new package。之后,您需要将remaneandroid中的包名称manifest更改为新包的名称。

  • 在第2步中,这是您需要做的。除了在中更改包名之外,您还需要在android studio applicationId模块的模块下更改旧包名。因此,总而言之,单击“ AndroidManifest.xml”下面的哪个,然后将的值修改为新的程序包名称。build.gradlemanifestbuild.gradleapplicationId

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


3

最好的方法是编写新的程序包名称,然后从旧的程序包名称中拖动。

第二种方法,如果单击“ 重构然后移动”选项,然后重命名程序包名称,它将重命名程序包名称,然后重新生成。

在Build.gradle中,您必须手动进行操作,如果您进行重构,则它不会在Build.gradle中重命名。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.