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

All*_*ich 133 java android

我的密钥库已损坏,因此Android Market要求我重命名该应用并重新提交.但是,每当我在Manifest和整个文件中编辑包名时,它都会给我带来大量的错误.

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

Mar*_*ein 302

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

  • 这个答案要容易得多.这应该被接受了. (26认同)
  • 这是正确的答案,但是当前的ADT已被破坏,并且它会破坏您对R类的每个引用.所以你必须点击每个单独的文件,执行"ctrl-shift-o"(或Mac上的cmd-shift-o),并选择你的新包名为R(不要选择android.R!事情会破坏可怕的),然后点击保存....并重复每个单独的文件:( (4认同)
  • 我发现在每个文件顶部声明的文件包名称与新包不匹配,也没有与它们所在的文件夹匹配.您可以右键单击仍然具有旧包名称的源文件夹(至少我的总是如此),选择'refactor'然后'rename'并将其重命名为新包.然后,eclipse将文件夹和每个文件的包声明重命名为新的包名,就像它应该首先完成的那样. (3认同)
  • 刚试过Eldar并且它有效 - 但我相信这也会奏效. (2认同)
  • 很简单!优秀. (2认同)

eld*_*his 102

如果您正在使用Eclipse,则可以尝试从Android开发人员站点获取这些说明.它们专门用于GestureBuilder示例,但应该适用于任何应用程序,据我所知:

[H]你是如何在Eclipse中做到这一点的:

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

此外,请确保您记得重命名包本身以及文件中对它的引用.在Eclipse中,您可以在左侧的文件资源管理器窗口/树视图中看到包的名称.根据我的经验,Eclipse有时可能有点笨拙且不可靠(例如,留下对旧包名称的杂散引用).

  • 就在这里.请参阅@Marc Bernstein的回答. (13认同)

AZ_*_*AZ_ 52

以下是在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在模拟器上运行该应用程序.

链接到帖子

更新 超级简单的方法右键单击您的项目... 在此输入图像描述

  • 非常棒的方式来做到这一点! (2认同)
  • 更简单的解决方案 这应该被接受;) (2认同)

cra*_*ned 11

Android Studio中,其中,坦白地说,你应该使用,通过改变包装名称right-clicking上的包名project structure -> Refactor -> Rename...

然后,它提供重命名目录或包的选项.选择包.该目录应该效仿.键入新包名称,然后单击"重构".它将更改所有导入并删除多余的导入.你甚至可以在评论和字符串等方面为它修复它.

最后,将AndroidManifest.xml中的包名称更改为顶部.否则你会到处抱怨R.whatever.

另一个非常有用的解

首先创建一个具有所需名称by right clicking on thejava文件夹的新包- > new - > package

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

之后:在你的应用程序中build.gradle添加/编辑applicationId并使用新的.即(com.a.bc在我的情况下):

defaultConfig {
    applicationId "com.a.bc"
    minSdkVersion 13
    targetSdkVersion 19
}
Run Code Online (Sandbox Code Playgroud)

原帖和更多评论在这里


clu*_*lux 8

没有Eclipse:

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

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

  3. 重命名所有文件夹以匹配包名称.文件夹位置:
    a.bin/classes
    b.gen
    c.SRC

  4. 在build.xml中更新项目名称(或者您的apk名称不会更改)

  5. 删除bin/classes/com/example/myapp /中的所有.class文件(如果跳过此步骤,则在构建期间不会重写文件,并且dex会给处理"类名不匹配路径"错误带来一堆麻烦

  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个步骤,以便更改我的包名并获得成功的*版本.可能有更好的方法通过dex命令来处理步骤5和6以更新路径,或者可能通过编辑项目根目录中的classes.dex.d.我不熟悉dex或者删除/编辑classes.dex.d是可以的,所以我选择了删除.class文件的方法,我知道这些文件将在构建中重新生成.然后我检查了classes.dex.d以查看仍需要更新的内容.

*我的构建中没有错误或警告EXCEPT dex和apkbuilder都声明"找到删除的目标文件",没有关于该文件的具体内容.不确定这是否出现在每个构建中,如果它在我搞砸了我的包名之前就已存在,或者是否是我删除的结果而我错过了一步.


Dee*_*rma 6

跟着这些步骤:-

  • 右键单击该项目.
  • 转到Android工具.
  • 单击重命名应用程序包.
  • 更改应用程序包名称.

DONE


Mov*_*aev 6

在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]

PS如果您不遵循此顺序,您最终可能会使用新导入和一堆编译时错误逐个更改所有java文件,因此顺序非常重要.


erd*_*ter 5

更改包名是一个痛苦的屁股.看起来不同的方法适用于不同的人.我的解决方案快速且无错误.看起来不需要清理或重置日食.

  1. 右键单击包名称,然后单击Refractor> Rename.
  2. 右键单击项目名称Android tools> Rename Application Package.
  3. 在Manifest中手动设置尚未通过前面步骤更改的包名称.