提问



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


是否包括自动重构?


我想进行批量重构,但我不知道如何。我在eclipse工作了2年,在eclipse中工作了一次点击操作。

最佳参考


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



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



  1. 项目窗格 中,点击小齿轮图标(Gears)

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







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

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



    • 右键单击

    • 选择Refactor

    • 点击Rename

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

    • 输入新名称,然后按重构

    • 点击底部的 Do Refactor

    • 等一下让Android Studio更新所有更改

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








  1. 现在打开 Gradle Build File (build.gradle - 通常appmobile)。将applicationId更新为新的包名称和同步Gradle,如果它尚未自动更新:







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

  2. 清除和重建。

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


其它参考1


另一个好方法是:首先通过右键单击java文件夹 - > new - > package创建一个具有所需名称的新包。


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


最后,删除旧包。


完成。


还有一件非常重要的事情


如果您使用此方法,则必须手动将Android Manifest和gradle文件更改为新包。

其它参考2


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



  1. 右键单击项目的根文件夹。

  2. 单击打开模块设置。

  3. 转到Flavors选项卡。

  4. 将applicationID更改为您想要的任何包名称。按确定。



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

其它参考3


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


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


[50]


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


[51]


第3步
:输入新的包名称


[52]


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


[53]


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


[54]


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


[55]


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


[56]


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


[57]


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


[58]


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


[59]


第11步
:重新建立你的项目,bingo你的项目包名已被更改:)

其它参考4


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


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

其它参考5



  1. 转到你的AndroidManifest.xml。

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



[60]



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



[61]



  1. 输入新名称,然后选择重构
    (注意,因为我的光标在某些东西上,所以只有一些东西被重命名。)



这就是它。

其它参考6


(1)


打开文件:


app >> manifests >> AndroidManifest.xml


[62]


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



  • 鼠标右键单击>>重构>>重命名>>重命名包

  • 输入新名称并按(重构)



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


[63]


(2)


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


并将 applicationId 更新为您的包名称


[64]


(3)


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

其它参考7


Intelli J有一个名为Compact Empty Middle Packages的选项。选择项目选项卡的选项图标,然后取消激活它。


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

其它参考8


选择包将被重构,refactor-> move - >将xxx移动到新包

其它参考9


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


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


[66]


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


[67]


建议您重构包裹:


[68]


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


[69]


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

其它参考10


如果您的包名分隔超过两个点,请说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)

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

  • 享受它。


其它参考11


更新回答:2015年5月


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



  1. 复制项目文件夹,重命名&用Android Studio打开它

  2. 从资源管理器重命名模块目录

  3. 重命名projectName.iml和内容

  4. 重命名//.name内容

  5. 在项目窗格中,单击小齿轮图标 - >取消选中Compact Empty Middle Package

  6. 为新包名重构src目录(重命名包,不重命名目录)

  7. 在build.gradle中重命名应用程序ID

  8. settings.gradle重命名模块



而已...

其它参考12


我尝试了两个最高投票的解决方案,但发现了一些问题,尽管两者都有一定的作用。



  • 列表项:新的package-drag-drop方法保留一些不变并产生一些不良影响

  • 列表项:重命名包仅更改包名称的最后一部分



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


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


在项目窗格中右键单击该包。从上下文菜单中选择Refactor - > Rename


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


在项目窗格中右键单击该包。从上下文菜单中选择Refactor - > Move


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


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

其它参考13


请尝试以下步骤:



  1. 单击设置齿轮图标并取消选择Compact Empty Middle Package

  2. 现在我们可以看到每个包文件夹分为几部分

  3. 现在右键单击第一个包文件夹>>> refactor >>> rename

  4. 现在会显示警告,但您继续并单击重命名

  5. 之后输入您的包名称
  6. 的域名
  7. 点击Do Refactor

  8. 现在它已经更改了App的包域名。现在改变了
    根据您的要求进行域名扩展和App文件夹名称

  9. 现在在Gradle Scripts中打开build.gradle(Module:app)。在这里改变
    应用程序ID,然后单击立即同步。



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

其它参考14


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


为了获得相同的所需更改,请升级一级,即com.name,此时重构时将其更改为重命名。这将始终有效

其它参考15


右键单击包 - >重构并更改名称。
您也可以在清单中更改它。
有时如果你更改包名但在创建apk之后它会显示不同的包名,请在build.gradle文件中检查applicationId。

其它参考16


我找到了另一种方法,或者在这里有一些额外的步骤,特别是如果你想改变域名的话。适用于android studio 1.4。这就是我做的:



  1. 打开Manifest.xml并将包名更改为您想要的名称。

  2. 打开您的app build.gradle文件,并将defaultConfig中的Application Id更改为与manifest中相同的名称并重建项目。

  3. 如果仍然问题,打开包名称下的文件,转到包breadcrumbs(即文件头部的包声明)并将光标设置到要更改的域并点击Shift + F6,它会出现一个包含多个使用警告的对话框,单击重命名包,然后单击重构,它应该重命名包括R.Java文件在内的所有内容。



所以例如,如果要将com.example.app重命名为com.YourDomain.app,打开要重命名的包下的文件,在包breadcrumbs中,将光标设置为域的示例部分然后按Shift + F6并将包重命名为YourDomain。


希望这可以帮助 :)

其它参考17


我已经找到了解决这个问题的方法,这个方法也改变了com.test.testpackagechange.R等生成的导入,只需要大约一分钟。


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


[70]


在您完成所有操作后,将全部替换为您的新包装名称。


[71]


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


[72]


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


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

其它参考18


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


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


然后,在最顶层,在构建下。清理您的项目,然后重建。从这里开始应该没问题。

其它参考19


包有两个目的。一种是在Google Play商店中唯一标识您的应用。另一种是为构建项目时生成的R.java类命名包。您可以将第一个目的视为外部包,第二个目标视为内部包。假设您要更改外部程序包以便在Play商店中进行识别,则可以通过这种方式进行操作。


在Android Studio中,选择文件>项目结构>选择应用程序模块>单击Flavors选项卡>更改应用程序ID。现在,在构建项目时,APK和清单将使用此新程序包名称。

其它参考20


我相信你要找的是Refactor> Move。您也可以按F6。


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


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


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

其它参考21


编写新包名称并从旧包名称拖动的最佳方法。
第二种方法,如果单击Refactor然后移动选项,然后重命名包名称,它将重命名包名称,然后重建。


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

其它参考22


一定要回到Sheharyar的答案开始In Android Studio, you can do this:因为它太棒了。有很多答案和评论随之而来,很容易让人感到困惑和放弃,但是不要回答这个问题。


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


取消选择Compact Empty Middle Packages


Refactor Rename每个旧目录节点选择CHANGE PACKAGE ( not 目录)以匹配新包名称。 (务必预览更改。)


编辑build.gradle文件并使APPLICATION_ID与新包名称匹配。

其它参考23


3年后的补充答案,当然,如果以前任何不适合你,因为东西。



  • 转到项目路径>您找到java文件和包的位置

  • 创建新文件夹,例如com> super_package> activities

  • Android Studio将刷新项目结构

  • 将所有Java文件移至新文件夹

  • 删除旧文件夹

  • 编辑>查找>替换路径:

  • 将旧包名称更改为新

  • 也在清单和构建gradle中进行更改



完成!

其它参考24



  1. 在Java文件夹中选择包名称。

  2. + F6

  3. 更改包名称,然后单击确定。



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

其它参考25


ctrl + shift + R一直对我有用。
只需全部替换并选择所有文件。

其它参考26


我建议使用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!
就这样:)
[73]

其它参考27


这对我来说非常有效,即使是在所有相关模块中更改了我想要在包中修改的文件夹名称,但对我来说,如果我完全遵循它,它只能 以下步骤:



  • A - 如果要更改根文件夹的名称(换句话说,在包中正常使用的文件夹名称包含主体Activity),您可以这样做<通过退出Android Studio并手动重命名此根文件夹,在之后或之后以下步骤(B到C)单击导入项目...然后单击项目的新名称(此导入过程将自动使用项目文件重新调整Gradle文件。)

  • B - 之前以下C步骤,不要忘记通过在以下3个文件中更改它们来手动修改要在包中更改的文件夹名称:AndroidManifest.xml ,MainActivity.java(或您最终为第一个Activity选择的名称)和build.gradle(Module:app)文件。

  • C - 按照上述步骤1至6(在您的项目窗格中,单击小齿轮图标...) - > https://stackoverflow.com/a/29092698/2001610

  • D - 仅当您想立即更改根文件夹的名称时,您可以按照A过程进行操作,如上所述。


其它参考28


在您使用其中一种技术重命名包之后,您可能会开始看到错误。


如果/当你的R.java没有正确生成时,你的项目中会出现很多错误error: cannot find symbol class Rerror: package R does not exist


请记住检查您的应用程序清单xml。清单包名称必须匹配实际包名称。似乎R.java是从Application Manifest生成的,如果出现不匹配,可能会导致这些错误。


请记住检查<manifest package="com.yourcompany.coolapp">中的package属性匹配项

其它参考29


快速简便的方法:


1- open MainActivity.java或任何可用的java文件。


在顶部有包裹声明,例如:



  package com。example。myapp;



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


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


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


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