如何更改 Android 应用程序的软件包名称

我的密钥存储库已损坏,因此安卓市场要求我重命名应用程序并重新提交它。但是,每当我在 Manifest 和整个文件中编辑包名称时,都会出现大量错误。

更改应用程序名称的正确方法是什么?

188310 次浏览

如果您正在使用 Eclipse,您可以在 Android 的开发者站点上尝试 这些指示。它们是专门针对 GestureBuilder 示例的,但是应该适用于我所知道的任何应用程序:

[ H ]在 Eclipse 中可以这样做:

  1. 右键单击软件包名称(src/com.android.gesture.builder)。
  2. 选择 Refactor > Rename 并将名称更改为 com.android.gestureNEW.builder.
  3. 打开清单文件 标记,将包名称更改为 com.android.gestureNEW.builder.
  4. 打开两个 Activity 文件中的每一个 并执行 Ctrl-Shift-O 以添加缺少的导入包,然后保存每个导入包 在模拟器上运行 GestureBuilder 应用程序。

另外,请确保您记得重命名包本身以及文件中对它的引用。在 Eclipse 中,您可以在左侧的文件浏览器窗口/树视图中看到包的名称。根据我的经验,Eclipse 有时候对此有点吹毛求疵和不可靠(例如,留下对旧包名的偏离引用)。

在 Eclipse 中有一种方法可以轻松地更改包名。右键单击您的项目,向下滚动到 Android 工具,然后单击重命名应用程序包。

Bernstein 有这个方法,使用 Eclipse 工具“重命名应用程序包”,你可能需要在事后做一些清理工作。 此外,当您对项目进行更改时,Eclipse 有时会丢失对事物的跟踪。你可能需要使用“清理项目”工具(在“项目”菜单下)如果这不起作用,您可能必须关闭并重新启动 Eclipse。Voo-doo 解决方案,但 Eclipse 可以采用这种方式。

我发现最简单的解决方案是使用 Regexxer将“ com.package.name”替换为“ com.newpackage.name”,然后正确地重命名目录。超级简单,超级快。

在 Eclipse 中可以这样做:

  1. 右键单击软件包名称(src/com.android.gesture.builder)。
  2. 选择 Refactor > Rename并将名称更改为 com.android.gestureNEW.builder.
  3. 打开清单文件。在 <manifest>标记中,将包名更改为 com.android.gestureNEW.builder
  4. 打开两个 Activity文件中的每一个,执行 Ctrl + Shift + O以添加缺少的导入包,然后保存每个文件。
  5. 在模拟器上运行 GestureBuilder应用程序。

链接到文章

更新 超级简单的方法 右键点击你的项目。 enter image description here

更改软件包名称是件麻烦事。看起来不同的方法适用于不同的人。我的解决方案是快速和无错误的。看起来不需要清洁或重置日食。

  1. 右键单击软件包名称,然后折射 > 重命名。
  2. 右键单击项目名称 Android tools > Rename Application Package。
  3. 手动设置未被前面步骤更改的清单中的包名称。

对于不使用 Eclipse 的用户,还有另一种解决方案,只需在 AndroidManifest.xml 中更改 < Manif> 标记中的包属性,将使用的旧包名称替换为新包名称。你必须在你的项目中手动调整所有相关的导入语句和相关文件夹。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="new.package.name"
.....
</manifest>
  1. 首先更改清单文件中的包名称
  2. src文件夹中重命名包的名称,并为 rename subpackages打勾
  3. 这就是你所做的一切。

没有 Eclipse:

  1. 更改 AndroidManifext.xml 中的包名称和活动名称以及显示它的任何其他地方。Xml 文件(自定义视图名等)

  2. 更新跨所有源文件的包导入语句

  3. 重命名所有文件夹以匹配包名。文件夹位置:
    甲类/类
    基因
    C src

  4. 在 build.xml 中更新项目名称(否则 apk 的名称不会更改)

  5. 删除所有。Bin/classes/com/example/myapp/中的类文件(如果跳过这个步骤,文件在构建期间不会被重写,并且 dex 会给处理“ class name does not match path”错误带来很多麻烦

  6. 删除 gen/com/example/myapp/BuildConfig.java (我不知道为什么在步骤3a 中删除 BuildConfig.class 不会导致 dex 更新它的路径,但是在我删除 BuildConfig.java 之前,它一直在重新创建 gen/com/oldapp _ example/oldapp,并把 BuildConfig.class 放在那里。我不知道为什么同一个地方的 R.java 没有这个问题。我怀疑 BuildConfig.java 是在预编译中自动生成的,但 R.java 不是)

上面的6个步骤就是我为了更改软件包名称和获得一个成功的 * build 所做的工作。可能有更好的方法通过 dex 命令更新路径来处理步骤5和步骤6,或者在项目的根目录中编辑 classes.dex.d。我不熟悉 dex 或者是否可以删除/编辑 classes.dex.d,所以我使用了删除的方法。我知道类文件将在构建中重新生成。然后,我检查 classes.dex.d 以查看还需要更新的内容。

* 没有错误或警告留在我的构建 EXCEPT dex 和 apkBuilder 都状态“发现已删除的目标文件”,没有详细说明该文件是什么。不确定这是否出现在每个构建中,是否在我弄乱包名之前就已经存在,或者是否是删除的结果,我错过了一个步骤。

选择:

  1. 打开 AndroidManifest.xml
  2. 在清单标记中更改 package = “ NEW NAME”。

遵循以下步骤:-

  • 右键单击该项目。
  • 使用 Android 工具。
  • 单击“重命名应用程序包”。
  • 更改应用程序包名称。

搞定

安卓工作室中,老实说,您应该使用 安卓工作室,将 project structure -> Refactor -> Rename...中的包名称上的包名称改为 right-clicking

然后它提供了重命名目录或包的选项。选择包。目录应该跟着做。键入新的包名称,然后单击“重构”。它将为您更改所有的导入并删除多余的导入。你甚至可以在注释和字符串中为你修复它。

最后 ,将 AndroidManifest.xml 中的包名相应地向顶部更改。否则你会得到错误到处抱怨 R 什么的。

另一个非常有用的解决方案

首先创建一个新包,包含所需的 nameby right clicking on thejava 文件夹-> new-> 包

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

之后: 在你的应用程序的 build.gradle中添加/编辑 applicationId 和新的一个。例如(在我的例子中是 com.a.bc) :

defaultConfig {
applicationId "com.a.bc"
minSdkVersion 13
targetSdkVersion 19
}

原文及更多评论

  1. 右击 Project > Android Tools > Rename Application Package

  2. 转到 src,右键单击主包 > Refactor > Rename

  3. 转到清单文件并更改包名称。

我只是花了几个小时尝试各种解决方案。我确信,问题在于我的代码启动时出现了一些错误,但是在处理不同的类和活动时出现了一些错误。

只有这样才能完成我的项目:

  1. 重命名 it-file/rename 并选中所有复选框
  2. 检查没有重命名的地方,我在一个布局旧名仍然在工具: 上下文 =”。
  3. 创建新的工作空间
  4. 将项目导入新的工作区

对我来说,这是唯一的解决办法。

在 Android Studio 1.3中最快的实现方法 :

  1. 更改 manifest中的包名称
  2. 转到 Module Settings[F4]-> Flavors,进入 Application Id写同一个名字。
  3. 创建名为 [right-click-> new-> package]的新包
  4. 选择项目的所有 java 文件,然后执行 [Right-click-> Refactor-> Move-> {Select package}-> Refactor]

附言。如果您不遵循这个顺序,您可能最终改变所有的 Java 文件一个新的导入和一堆编译时错误,所以顺序是非常重要的。

在 Android Studio 1.2.2中 如果要将 com.example.myapp更改为 org.mydomain.mynewapp,请说明 您可以按照下面屏幕快照中显示的每个目录中的步骤操作。它将提供预览选项,以便您可以在进行任何更改之前进行预览。

Refactor -> Rename给你的新名字。你必须对每个文件夹都这样做,比如 com,example 和 myapp。它会自动更新导入,这样您就不必担心了。 enter image description here

还要更新文件 build.gradle,它不会自动更新。

defaultConfig {
applicationId "org.mydomain.mynewapp" //update the new package name here
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
}

之后,它会要求 sync做到这一点。那一切都会好起来的。我可以上传我的 APK 到谷歌商店后,这一点。请确保您已经签署您的应用程序上传到商店。

因此,在 Android (Studio)插件中使用 IntelliJ 是: 我在顶部转到 AndroidManifest.xml,通过右键单击-> Refactor-> rename 更改软件包名称。 我们当时的包名称有四个部分 a.b.c.d,新的只有 a.b.c。 所以我重新命名了前三个。然后我转到生成源目录(app\build\generated\source\r\development\debug\a\b\c\d) ,右键单击 R类,并将 Refactor-> Move [ d ]移动到更高的一个包。app\build\generated\source\buildConfig\development\debug\a\b\c\d中的 BuildConfig也是如此。

通过使用 Refactor-> Move,IntelliJ 更新对 BuildConfigR的所有引用。

最后,我更新了在 gradle.build 中找到的所有 applicationId [ s ]。我点击清洁项目,制造和重建项目。从我手机上删除了应用程序然后点击“播放”。这一切都解决了,所以重构很容易,也很快。

  1. 在你的 Android 工作室,在项目面板,有齿轮图标“点击它”。
  2. 取消选中紧凑型空中间包
  3. 现在软件包目录已经被分解了,即单个目录。
  4. 选择要重命名的目录。
  5. 右键单击该特定目录。
  6. 选择 refactor,然后重命名选项。
  7. 对话框已打开,请重命名它。
  8. 输入新名称后,单击 Refactor。
  9. 然后点击底部的 Do Refactor。
  10. 然后 android 工作室会更新所有的修改。
  11. 现在打开 build.gradle 文件并更新 applicationId & sync 它。
  12. 现在转到清单文件并重命名包。
  13. 重建项目。
  14. 你完蛋了:)