首页 文章

在Android Studio中重命名包

提问于
浏览
1012

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

是否包含自动重构?

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

30 回答

  • 1

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

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

    • 单击"Open Module Setting" .

    • 转到Flavors选项卡 .

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

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

  • 4

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

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

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

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

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

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

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

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

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

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

  • 2154

    一定要回到Sheharyar的答案,该答案从 In Android Studio, you can do this: 开始,因为它's GREAT. There are so many Answers and comments that follow it that it would be easy to get confused and give up, but DON' T.答案工作 .

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

    取消选择 Compact Empty Middle Packages .

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

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

  • 8

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

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

    完成后,按“全部替换”将旧包名替换为新包名 .

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

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

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

  • 3

    选择要重构的包 . 重构→移动→"Move xxx to new package" .

  • 3

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

  • 10

    右键单击 Project Panel 处的包 .

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

  • 1

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

    In Android Studio,

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

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

  • 2

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

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

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

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

  • 3
    • 在Java文件夹中选择包名称 .

    • Shift F6

    • 更改包名称,然后单击“确定” .

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

  • 39

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

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

    最后,删除旧包 .

    完成 .

    Very important:

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

  • 3

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

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

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

  • 2

    请尝试以下步骤:

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

    • 现在我们可以看到每个包文件夹都被分成几部分

    • 现在右键单击第一个包文件夹>>>重构>>>重命名

    • 现在将显示一条警告,但您继续并单击“重命名包”

    • 之后输入包名称的域名

    • 点击'Do Refactor'

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

    • 现在在Gradle Scripts中打开build.gradle(Module:app) . 在此处更改应用程序ID,然后单击立即同步 .

    *最后完成了

  • 164

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

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

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

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

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

    希望这可以帮助 :)

  • 5

    在Android Studio中,您可以这样做:

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

    • Project pane 中,单击小齿轮图标(
      Gears icon

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

    Compact Empty Middle Packages

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

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

    • 右键单击它

    • 选择 Refactor

    • 点击 Rename

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

    • 输入新名称,然后按 Refactor

    • 单击底部的 Do Refactor

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

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

    enter image description here

    • 现在打开 Gradle Build Filebuild.gradle - 通常为 appmobile ) . 将 defaultConfig 中的 applicationId 更新为新的包名称和同步Gradle(如果尚未自动更新):

    Refactor Directories

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

    • 清洁和重建 .

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

  • 3

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

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

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

    建议您重构包裹:

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

    We don´t have to change manually the AndroidManifest.xml or build.gradle files, Refactoring the package will do the job!.

  • 2

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

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

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

    还有一件事,这会更新你的applicationIdbuild.gradle也是如此 . 只需确保选中“在注释和字符串中搜索”和“搜索文本事件”的复选框,以使其正常工作 .

  • 1

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

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

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

    • Android Studio将刷新项目结构

    • 将所有Java文件移动到新文件夹

    • 删除旧文件夹

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

    • 将旧包名更改为新包

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

    完成!

  • 21

    快速简便的方法:

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

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

    package com.example.myapp;

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

    在警告对话框中,选择 Rename package ,然后插入所需的包名称 .

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

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

  • 2

    Updated answer: May 2015

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

    • 复制项目文件夹,重命名并使用Android Studio打开它

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

    • 重命名projectName.iml和内容

    • 重命名idea / .name内容

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

    • 为新包名重构src目录(重命名包,"not rename directory")

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

    • settings.gradle重命名模块

    而已...

  • 52

    如果您的包名称超过两个点,请说 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+1Command+1 表示快捷方式)并重命名目录重构正在按预期等待 .

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

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

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

    • [ALSO] ,它可能需要您将所有 com.hello.world.R 替换为新的 XXX.XXX.XXX.R (简称 Command+Shift+R

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

    • 享受吧 .

  • 31

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

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

    • B - 在接下来的C步骤之前,通过在以下3个文件中更改它们来删除要更改的名称:'AndroidManifest.xml','MainActivity.java'(或您最终为第一个活动选择的名称)和'build.gradle (Module: app)'文件 .

    • C - 按照上述步骤1至6("In your Project pane, click on the little gear icon...") - > https://stackoverflow.com/a/29092698/2001610进行操作

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

  • 1

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

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

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

    Step 3 :输入新的包名称

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

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

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

    Step 7 :然后右键单击旧包并将其全部删除,并删除该目录

    Step 8 :然后重建您的项目

    Step 9 :然后您会在项目 Select the old package name in any file and press CTRL + Shift + R 中找到旧导入包名称的一些错误,并在替换框中输入新包名称,然后按查找

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

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

  • 2

    (1)

    打开文件:

    app >> manifests >> AndroidManifest.xml

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

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

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

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

    (2)

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

    并将applicationId更新为您的包名称

    (3)

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

  • 481

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

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

  • 14

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

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

  • 14

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

  • 2

    我建议使用Sublime Text(或Notepad) . 在... \ Projects [MyProject]中替换com.one.lastname - > com.two.newname和com / one / lastname - > com / two / newname . 并且不要't forget to rename ...\Projects\MyProject\app\src\main\java\com\one\lastname, ...\Projects\MyProject\app\src\test\java\com\one\lastname and ...\Projects\MyProject\app\src\androidTest\java\com\one\lastname! That'全部:)

  • 2
    • 转到您的AndroidManifest.xml .

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

    • 然后按 shift+F6 您将看到如下所示的弹出窗口,选择 Rename package .

    • 输入新名称并选择 Refactor . (注意,因为我的光标在"something"上,所以只重命名了 . )

    就是这样 .

  • 5

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

    见:How can I change top level package name in IntelliJ IDEA?

相关问题