在Android Studio中重命名包

Rename package in Android Studio

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

是否包含自动重构?

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


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

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

  • 在"项目"窗格中,单击小齿轮图标(Gears icon)

  • 取消选中/取消选择Compact Empty Middle Packages选项

    Compact Empty Middle Packages

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

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

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

    Enter image description here

  • 现在打开Gradle Build File(build.gradle - 通常appmobile)。如果尚未自动更新,请将defaultConfig中的applicationId更新为新的Package Name和Sync Gradle:

    Refactor Directories

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

  • 清洁和重建。

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


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

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

    最后,删除旧包。

    完成。

    很重要:

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


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

  • 右键单击项目的根文件夹。
  • 单击"打开模块设置"。
  • 转到Flavors选项卡。
  • 将applicationID更改为您想要的任何包名称。按
  • 请注意,这不会更改包名称。这里解释了包名称和应用程序ID的分离:
    http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename


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

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

    enter image description here

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

    enter image description here

    第3步
    :输入新的包名称

    enter image description here

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

    enter image description here

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

    enter image description here

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

    enter image description here

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

    enter image description here

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

    enter image description here

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

    enter image description here

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

    enter image description here

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


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

    Enter image description here

  • 然后按Shift + F6你会得到一个弹出窗口,如下图所示
    重命名包。

    Enter image description here

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

  • 就是这样。


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

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


  • 打开文件:

    app→manifeststs→AndroidManifest.xml

    Enter image description here

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

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

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

    Enter image description here

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

    并将applicationId更新为您的包名称

    Enter image description here

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


  • 选择要重构的包。重构→移动→"将xxx移动到新包"。


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

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


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

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

    introducir la descripción de la imagen aquí

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

    introducir la descripción de la imagen aquí

    建议您重构包裹:

    introducir la descripción de la imagen aquí

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

    introducir la descripción de la imagen aquí

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


    如果您的包名称超过两个点分隔,例如com.hello.world,而且您没有在com/com/hello/中放置任何内容。您的所有类都放入com/hello/world/,您可以按照以下步骤在Android Studio或IntelliJ中重构您的包名称:

    • [FIRST]在目录下添加一些内容(com/com/hello/)。您可以
      通过首先添加两个文件到com.hello.world包来实现这一点
    1
    2
       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的伟大答案。随之而来的答案和评论很多,很容易让人感到困惑和放弃,但事实并非如此。那个答案有效。

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

    (1)取消选择Compact Empty Middle Packages

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

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


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

  • 打开Manifest.xml并将包名更改为您想要的名称。
  • 打开app build.gradle文件,将defaultConfig中的Application Id更改为与manifest中相同的名称,然后重建项目。
  • 如果还是个问题,请打开包名称下的文件,转到包breadcrumbs(即文件头部的包声明)并将光标设置到要更改的域并点击"Shift + F6",它会出来使用带有多个使用警告的对话框,单击"重命名包",然后单击"Do Refactor",它应重命名包括R.Java文件在内的所有内容。
  • 因此,例如,如果要将"com.example.app"重命名为"com.YourDomain.app",请打开要重命名的包下的文件,在包breadcrumbs中,将光标设置为域的"示例"部分并点击Shift + F6并将包重命名为"YourDomain"。


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

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


    更新回答:2015年5月

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

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


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

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

    enter image description here

    完成后,按"全部替换"将旧包名替换为新包名。

    enter image description here

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

    enter image description here

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

    我发现这是最容易的,也是覆盖生成文件等所有领域的。


  • 在Java文件夹中选择包名称。
  • Shift + F6
  • 更改包名称,然后单击OK
  • 您的包名称将从所有Java文件和清单文件中更改。您必须从build.gradle手动更改包名称。


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

    • 列表项:新的package-drag-drop方法保留一些不变并产生一些不需要的效果
    • 列表项:重命名包仅更改包名称的最后部分

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

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

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

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

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

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

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


    enter image description here

    3在Android Studio中更改包名称的方法

    我认为这是一个新的。我尝试了它,它正在工作。如果以上不适合你。试试这个。我上面提到的网站,图像教程还有其他两种方法。我也检查过。

    首先,我将谈谈更改包名称。在此示例中,我们将包名称"com.androidride.myapplication"更改为"info.xyz.yourapplication"。

  • 右键单击要更改的包名称,然后选择"重构" - >"移动"。
  • 将出现一个新对话框,选择将包"com.androidride.myapplication"移动到另一个包中,然后单击"确定"。
  • 出现警告对话框,单击是。
  • 在新对话框中输入新包名称。但只有"info.xyz"留下你的应用。
  • 现在您将看到一个警告对话框,说包info.xyz不存在。你想创造它吗?点击是。
  • 单击"Do Refactor"。现在您的包名称已更改为info.xyz.myapplication。
  • 右键单击info.xyz.myapplication并重构 - >重命名。
  • 单击重命名包。
  • 重命名对话框:将myapplication更改为您的应用程序。
  • 单击Do refactor。
  • 删除旧的包名称目录并在build.gradle中更改应用程序ID,将其更改为info.xyz.yourapplication。
  • 就这样。

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

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


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

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

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

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


    • 转到项目路径>您找到Java文件和包的位置
    • 创建新文件夹,例如com→super_package→activities
    • Android Studio将刷新项目结构
    • 将所有Java文件移动到新文件夹
    • 删除旧文件夹
    • 菜单编辑→查找→替换路径:
    • 将旧包名称更改为新包
    • 在清单和构建gradle中也进行更改

    完成!


    • 第一部分包括在java文件夹下创建一个新包,然后选择然后将所有源文件从old package拖动到此new package。之后,您需要remane android manifest中的包名称为新包的名称。

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

    • 然后,在最顶层,build下。 clean您的项目,然后rebuild。从这里开始应该没问题。


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

    第二种方法,如果单击Refactor然后移动选项然后重命名包名称,它将重命名包名称,然后重建。

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


    ctrl + Shift + R一直对我有用。
    只需replace all并选择All Files


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

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

  • Shift + F6

  • 选择rename package

  • 将示例重命名为android

  • 确认do refactor


  • 请尝试以下步骤:

  • 单击设置齿轮图标并取消选择Compact Empty Middle Package
  • 现在我们可以看到每个包文件夹都被分成几部分
  • 现在右键单击第一个包文件夹>>> refactor >>>重命名
  • 现在将显示警告但您继续并单击重命名
  • 之后输入包名称的域名
  • 点击'Do Refactor'
  • 现在它已经更改了App的包域名。现在改变了
    域名扩展和App文件夹名称根据您的要求
  • 现在在Gradle Scripts中打开build.gradle(Module:app)。在这里改变
    应用程序ID,然后单击立即同步。
  • *******最后它完成了******


  • Ctrl + Shift + R

  • 用新的包替换旧包。

  • 右键单击包名称。

  • Refactor> Rename并重命名为新的


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

    就这样:)

    Screenshot


    快速简便的方法:

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

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

    package com.example.myapp;

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

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

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

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


    转到AndroidManifest.xml
    在那里你会发现package作为manifest标签的属性。
    只需选择要更改的部分,
    右键单击 - >重构 - >重命名

    也许早些时候它很难,但截至今天它已经不复存在了。

    您可能还想更改应用ID

    1
    2
    3
    defaultConfig {
        applicationId
    }

    简短&甜


  • 选择选项enter image description here

  • 取消选中Compact Empty Middle Packages选项。

  • 选择要更改的目录(我已选择步骤6中显示的'crl')。
  • Shift + F6
  • 重命名包
  • 将目录crl重命名为crl1
    enter image description here

  • 最后点击下面图片中标记的Do Refactor按钮
    enter image description here
    在此处输入代码

  • 完成更改后
    enter image description here


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

    在Android Studio中

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

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


    Right Click on the Package name -> Refractor ->Rename -> enter the name of the package ->Click"Refractor".
    Do not edit any of the build files except"build.gradle" under the"app" folder.

    从重命名android工作室项目 - Vishnu Sivan


    要在Android studio中重命名包名称,请单击项目部分中的设置图标并取消打开Compact empty Middle Packages,然后将包拆分为多个文件夹名称,然后右键单击需要更改名称的文件夹,单击refactor-> Rename->在 - > Refactor - > Refactor Directory中键入要更改的名称,然后在整个项目中导入R.java文件。为我工作


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

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

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

    请记住检查中的package属性匹配项


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

    • A - 如果要更改根文件夹的名称(换句话说,文件夹的名称在包中正常使用以包含主体活动),您可以在以下步骤(B到C)之前或之后执行以下操作:退出"Android Studio"并手动重命名此根文件夹。单击"导入项目...",然后单击项目的新名称(此导入过程将自动使用项目文件重新调整"Gradle"文件。)
    • B - 在接下来的C步骤之前,不要忘记通过在以下3个文件中更改它们来手动修改要在包中更改的文件夹名称:'AndroidManifest.xml','MainActivity.java'(或者你的名字)最终选择第一个活动)和'build.gradle(Module:app)'文件。
    • C - 按照上述步骤1至6("在您的项目窗格中,单击小齿轮图标......") - > https://stackoverflow.com/a/29092698/2001610
    • D - 仅当您想立即更改根文件夹的名称时,您可以按照"A"过程进行操作,如上所述。

    如果您的包以mypackageold.something.test开头,则无法更改为mypackagenew.somethingnew.testnew

    在这种情况下,如果我按照上面接受的答案步骤,结果将是mypackageold.somethingnew.testnew

    只有当您的包以com....开头到新包时,上面接受的答案才有效。

    因此,如果您想从根级别更改包

  • 更改清单中的必需包名称,
  • 在Android标签下删除旧包和Crate New Package,
  • 将所有文件从旧包拖到新包中,
  • 在Manifest内部还会更改这些文件的包名称,
  • 清洁项目,
  • 打开build.gradle并更新applicationId

    • 首先,您需要转到左侧出现的设置图标。单击该下拉列表并取消选中Compact Empty Middle Packages

    转到您的AndroidManifest.xml

  • 选择所有包,然后右键单击
  • 重构然后重命名你想要的。
  • 然后转到build.gradle,然后使用在Android Manifest中拥有的packagename更改Applicationid。
  • 这对我有用


    我需要运行File-> Invalidate Caches / Restart ...来删除原始包的残余


    例如,如果您想将com.example.a中的包更改为com.example.b

    1)将项目样式文件夹从android更改为包(在项目端)

    2)右键单击文件夹顶部,然后单击路径中的替换

    3)在项目按钮中选择

    4)在第一个输入中写入com.example.a

    5)在第二个输入中写入com.example.b

    6)当你看到警告时选择replace all来替换值

    完成替换后,您可以看到您的包名称是com.example.b


    给出了很多答案,但我仍在试用......

    步骤1 :
    如上图所示选择设置选项...
    enter image description here

    第2步:
    选择Compact Middle Packages选项......
    enter image description here

    第3步:
    现在展开包,如图所示
    enter image description here

    第4步:
    扩展之后会看起来像
    enter image description here

    第5步:
    选择子包上的任意内容(在或示例或googledevsmsverify中),然后单击Shift + f6按钮...
    enter image description here

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

    enter image description here

    第6步:
    单击Refactor按钮后,您将看到以下屏幕,单击DO Refactor并等待直到构建gradle ...
    enter image description here

    第7步:
    转到build.gradle(Mobile:app)并更改applicationID的包名称,如图所示
    enter image description here

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

    enter image description here

    所有完成的包裹都在改变...... @Ambilpura


    还有一个很好的键盘快捷键只需单击n选择要重命名的Class / Package并按ALT +两次R Shift + F6

    这反映了:Android Studio中的 - > Refactor菜单和Rename功能。重命名现有包后,它显示在底部,其中reflection / rename的效果如果单击Refector按钮,它将更改Class name / Package name在整个项目中使用的位置。


    这很容易做到。只需按照两个步骤:

  • 右键单击根文件夹,然后单击打开模块设置。

  • 在此之后转到flavor选项卡并根据需要更改应用程序ID。

  • 对于那些认为这只会改变build.gradle文件中的应用程序ID的人:

    它是由谷歌写的

    The final package that is used in your built .apk's manifest, and is the package your app is known as on your device and in the Google Play store, is the"application id".

    The package that is used in your source code to refer to your R class, and to resolve any relative activity/service registrations, continues to be called the"package".

    您可以在http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename上阅读更多内容。