繁体   English   中英

在 Android Studio 中重命名 package

[英]Rename package in Android Studio

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

是否包含自动重构?

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

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

例如,如果您想将com.example.app更改为my.awesome.game ,那么:

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

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

    紧凑的空中间包

  3. 您的包目录现在将被分解为单独的目录

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

  • 右键单击它

  • 选择Refactor

  • 点击Rename

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

  • 输入新名称并点击重构

  • 点击底部的Do Refactor

  • 让 Android Studio 更新所有更改

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

    在此处输入图像描述

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

    重构目录

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

  3. 清洁和重建。

    清理和重建

  4. 完毕! 不管怎样,Android Studio 需要让这个过程简单一点。

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

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

最后,删除旧包。

完毕。

很重要:

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

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

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

请注意,这不会更改包名称。 Package Name 和 Application ID 的解耦在这里解释: http ://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename

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

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

在此处输入图像描述

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

在此处输入图像描述

第 3 步:输入您的新软件包名称

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

步骤9 :然后你会在你的项目中发现old import packagename的一些错误在任何文件中选择旧包名并按CTRL + Shift + R ,然后在替换框中输入你的新包名,然后按find

在此处输入图像描述

第 10 步:然后出现如下所示的弹出窗口并从中选择“所有文件”选项

在此处输入图像描述

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

  1. 转到您的 AndroidManifest.xml 文件。

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

    在此处输入图像描述

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

    在此处输入图像描述

  4. 输入您的新名称并选择Refactor (注意:因为我的光标在“某物”上,所以只有某物被重命名。)

就这样完成了。

右键单击Project Panel中的包。

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

更改包名称


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


在此处输入图像描述


右键单击 > 重构 > 重命名


在此处输入图像描述


在新窗口中按重命名包


在此处输入图像描述


更改名称并按重构


在此处输入图像描述


…然后按底部的 Do Refactor。


在此处输入图像描述


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

完毕! 您已更改包裹名称!

  1. 打开文件:

    应用 → 清单 → AndroidManifest.xml

    在此处输入图像描述

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

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

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

    在此处输入图像描述

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

    并将applicationId更新为您的包名称

    在此处输入图像描述

  3. 打开菜单 (build) 并选择 (Rebuild Project)。

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

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

水图像介绍

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

水图像介绍

建议您重构包:

水图像介绍

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

水图像介绍

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

IntelliJ IDEA 有一个名为“Compact Empty Middle Packages”的选项。 选择项目选项卡的选项图标并取消/激活它。

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

选择要重构的包。 重构移动“将xxx移动到新包”

安卓工作室 2022


分步实施

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

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

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

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

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

注意:转到Build > Rebuild Project以显示更新的名称。

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

第6步:根据您的要求对域扩展名和App文件夹名称执行相同操作。

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

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


资料来源: 如何在 Android Studio 中重命名包名称?

如果你的包名有两个以上的点分隔,比如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

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

  • 好好享受。

一定要去看Sheharyar's great Answer 后面有很多答案和评论,很容易混淆和放弃,但不要 这个答案有效

简而言之,你做了三件事

(1) 取消选择Compact Empty Middle Packages

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

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

3个步骤快速简便的方法:

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

在顶部有包声明,例如:

包 com。 example .myapp;

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

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

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

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

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

为了获得相同的期望更改,请上一级,即com.name ,当您重构时将其更改为Renamed 这将永远有效。

  1. 在 Java 文件夹中选择包名称。
  2. Shift + F6
  3. 更改包名称并单击OK

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

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

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

在此处输入图像描述

完成后,按 Replace All 以将旧包名称替换为新包名称。

在此处输入图像描述

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

在此处输入图像描述

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

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

包有两个目的。 一种是在 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.

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

我尝试了两个投票最多的解决方案,但发现了一些问题,即使它们在某种程度上都有效。

  • 列表项:新的 package-drag-drop 方法保留了一些不变并产生了一些不希望的效果
  • 列表项:重命名包只改变包名的最后一部分

经过一些实验,我发现以下方法对我很有效。

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

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

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

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

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

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

更新答案: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 重命名模块

而已...

我在这里找到了另一种可行的方法或一些答案的额外步骤,特别是如果您也想更改域。 它适用于 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”。

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

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

  • 然后,在最顶部,在build下。 clean你的项目,然后rebuild . 从这里应该没问题。

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

第二种方式,如果你点击Refactor then move 选项然后重命名包名,它会重命名包名然后重建。

在 Build.gradle 中你必须手动进行,如果你重构然后它不会在 Build.gradle 中重命名。

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

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

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

就这样:)

截屏

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

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

  2. Shift + F6

  3. 选择rename package

  4. 将示例重命名为 android

  5. 确认do refactor

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

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

第 2 步:选择 Compact Middle Packages 选项... 在此处输入图像描述

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

第4步:扩展后它看起来像在此处输入图像描述

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

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

在此处输入图像描述

第6步:点击Refactor按钮后会看到如下画面,点击DO Refactor,等到build gradle... 在此处输入图像描述

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

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

在此处输入图像描述

全部完成,包裹正在改变......@Ambilpura

我相信您正在寻找的是重构>移动。 您也可以按 F6。

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

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

还有一件事,这也会更新 build.gradle 中的 applicationId。 只需确保选中“在评论和字符串中搜索”和“搜索文本匹配项”复选框以使其正常工作。

  1. 选择选项在此处输入图像描述

  2. 取消选中 Compact Empty Middle Packages 选项。

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

  7. 最后点击下图中标记的 Do Refactor 按钮在此处输入图像描述 在此处输入代码

  8. 更改完成后在此处输入图像描述

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

  1. Ctrl + Shift + R

  2. 用新包替换旧包。

  3. 右键单击包名称。

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

请尝试以下步骤:

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

*******终于搞定了******

在此处输入图像描述

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

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

首先,我将讨论更改包名称。 在本例中,我们将包名“com.androidride.myapplication”更改为“info.xyz.yourapplication”。

  1. 右键单击要更改的包名称,然后选择Refactor -> Move
  2. 出现一个新对话框,选择将包“com.androidride.myapplication”移动到另一个包,然后单击确定
  3. 出现一个警告对话框,点击yes
  4. 在新对话框中输入新的包名称。 但只有“info.xyz”离开你的应用程序。
  5. 现在您将看到一个警告对话框,显示 Package info.xyz 不存在。 你想创建它吗? 点击
  6. 点击“做重构” 现在您的包名称更改为info.xyz.myapplication
  7. 右键单击info.xyz.myapplicationRefactor -> Rename
  8. 单击重命名包
  9. 重命名对话框:将myapplication更改为yourapplication
  10. 点击做重构
  11. 删除旧的包名目录并在build.gradle中更改应用程序 ID,将其更改为info.xyz.yourapplication
  12. 就这样。

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

对我来说最简单和最满意的方法是这样,

在此处输入图像描述

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

第一部分完成。

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

就是这样,您完成了,最受好评的答案是旧的,我们需要更新答案。

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

完毕!

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

也许早些时候它很难,但到今天,它不再是了。

您可能还想更改应用程序 ID

defaultConfig {
    applicationId 
}

短而甜

右键点击包名->折射器->重命名->输入包名->点击“折射器”。 不要编辑“app”文件夹下的“build.gradle”以外的任何构建文件。

来自重命名 android studio 项目 - Vishnu Sivan

问题问:

是否包含自动重构?

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

好吧,几乎是一键式自动重构,但只是第一步,即创建新包的一小步。 这是下面的完整解决方案。

您可以通过创建新包(包括所需的文件夹路径)来重命名包,然后从旧包拖放(并让 Android Studio 负责将各种引用从旧包重构到新包), 如下:

  1. 右键单击app下的java 右键点击app下的java
  2. 选择NewPackage 在此处输入图像描述
  3. 选择新包的位置为 ../app/src/main/java 在此处输入图像描述
  4. 输入新包的全名在此处输入图像描述
  5. 将创建新包。 现在,从旧包拖放到新包。 如果您想检查 Android Studio 是否正确执行重构,请预览重构。 如果一切看起来都不错,请继续重构。

注意:由于最近应用程序 ID 和包名已解耦,请注意,以上仅用于重命名包名。 要更改应用程序 ID,您可以在build.gradle中进行。

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

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

在您按照这些技术之一重命名您的包后,您可能会开始看到错误。

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

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

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

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

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

转到您的 AndroidManifest.xml

  1. 选择所有你的包,然后右键单击那里
  2. 重构然后重命名你想要的。
  3. 然后转到您的 build.gradle,然后使用您在 Android Manifest 中的包名称更改 Applicationid。

它为我工作

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

如果您的包以mypackageold.something.test开头,那么您不能更改为mypackagenew.somethingnew.testnew

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

只有当您的包以com....开头到新包时,上述接受的答案才会起作用。

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

  1. 在清单中更改所需的包名称,
  2. 在 Android 标签下删除旧包和 Crate New Package,
  3. 将旧包中的所有文件拖到新包中,
  4. 在 Manifest 中还更改了这些文件的包名称,
  5. 清洁项目,
  6. 打开build.gradle并更新applicationId

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

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

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

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

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

3)在项目按钮中选择

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

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

6)当你看到警告选择全部替换以替换值

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

接受的答案对我不起作用。 这是一个 python 脚本,用于直接在源文件上更改包名称。

"""
Notes:
1 - This script it for python3
2 - Create a backup first
3 - Place on the root folder of the android project you want to change
4 - run `python change_android_studio_pkg_name.py`
5 - Type the old package name
6 - Type the new package name
7 - Clean and Rebuild on Android Studio
8 - SRC folder names won't be changed but app will work
"""

import os, glob, traceback
from pathlib import Path

def rwf(fp, mode="r", data="" ):
    if mode == "r":
        with open(fp, "r", encoding='utf8') as f:
            return(f.read())
    elif mode == "w":
        with open(fp, "w", encoding='utf8') as f:
            f.write(data)

old_pkg = input("Old PKG\n").strip()
new_pkg = input("New PKG\n").strip()

if not old_pkg or not new_pkg:
    exit("Args Missing")

dirname, filename = os.path.split(os.path.abspath(__file__))
file_types = ['xml', 'txt', 'json', 'gradle', 'java']
_fs =  glob.iglob(f"{dirname}/**", recursive=True)
for file_path in _fs:
    ext = Path(file_path).suffix.replace(".", "").lower()
    if os.path.isfile(file_path) and ext in file_types:
        try:
            content = rwf(file_path)
            new_content = content.replace(old_pkg, new_pkg)
            rwf(file_path, "w", new_content)
        except:
            print(traceback.format_exc())
            pass

python3要点

对我来说,我只是更改了库模块的目录名称而不是包名称,然后单击底部的 Do refactor(例如:来自 com.reg.register -> com.reg1.register)。

之后,确保您更新了构建 gradle 文件和清单文件中的新目录名称。

重建项目。

java目录中创建一个新package并将您的项目移动到该包中。 就像您当前的项目 id 是com.testapp.user一样,您想更改它xyz.testapp.user 然后在src/java目录中创建一个名为 xyz 的包,并将您的子包testapp.user移动到 xyz 中。 这个对我有用。 最后,更新 build.gradle 和manifest项目 ID。

它对我来说很好用

Change Following.

第 1 步:确保 ApplicationId 和 PackageName 相同。 例子 :

  android {
  defaultConfig {
                     applicationId "com.example.myapplication"
                 }
       }
 and package name the same. package="com.example.myapplication"

第 2 步在我的情况下删除 iml 文件:

  Go To Project> >C:\Users\ashif\Documents\MyApplication  .iml file // delete 
if you forget Project Path Then Go To android Studio Right Click on app and go to  Show in Explorer you get your Project and remove .iml file

步骤 3关闭项目

第 4 步现在复制您的旧项目并粘贴任何其他根目录或复制项目文件夹并粘贴任何其他目录。

 Example C:\Users\ashif\Documents/MyApplication 

第 5 步

Now open Android Studio and open Existing Project 
C:\Users\ashif\Documents/MyApplication 

试一试会奏效

如果您重命名的唯一原因是避免与具有相同包名称的另一个构建(或系统应用)发生冲突,那么您可以重命名applicationIdbuild.gradle文件中的 applicationId。

示例:假设您已经安装了一个 ID 为com.android.phone的应用程序(您想保留它),请将您的app/build.gradle更改为:

android {
    defaultConfig {
        applicationId "com.android.phone.mymod"

}

即,如果您已经有一个包名为com.android.phone的应用程序并且不想/不能卸载它(例如,因为它是一个系统应用程序并且设备没有植根),那么上面的更改就是所有需要的为了让您的应用程序与原始应用程序并排安装。 在设备上, applicationId将被使用,而不是实际的包名称。 此外,您的应用数据将存储在/data/data/com.android.phone.mymod而不是/data/data/com.android.phone下。

注意。 在某些情况下,您可能还需要在AndroidManifest.xml文件中重命名提供者和权限的名称。

参考:

当您在 Android Studio 中创建新项目时, applicationId与您在设置期间选择的 Java 样式的包名称完全匹配。 但是,应用程序 ID 和包名称在此之后相互独立。 您可以更改代码的包名称(您的代码命名空间),它不会影响应用程序 ID,反之亦然(但同样,一旦发布应用程序,您不应更改应用程序 ID)。 但是,更改包名还有其他后果您应该知道,因此请参阅有关如何更改包名的部分。

我没有看到有人指出这一点,这就是我写这个答案的原因。 我会添加这个答案作为评论,因为它确实不值得成为答案,但我在 Stackoverflow 上没有足够的声誉点数来发表评论。

我想将我的 package 名称从com.param.myapp 更改com.pvs.myapp 我遵循了 inte.net 上的每个解决方案,但忘记在 android 块的 build.gradle(:app) 中将命名namespace 'com.param.myapp'更改为命名空间namespace 'com.pvs.myapp' 我不确定名称空间行是否需要存在,但它给了我错误。 Android Studio 正在以旧名称 package 生成类。

记得检查一下!

这很容易做到。 只需遵循两个步骤:

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

  2. 在此之后转到风味选项卡并根据需要更改应用程序 ID。

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

谷歌写的是

在您构建的 .apk 清单中使用的最终包,即您的应用在您的设备和 Google Play 商店中所称的包,是“应用程序 ID”。

源代码中用于引用 R 类和解析任何相关活动/服务注册的包仍称为“包”。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM