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

时间:2010-10-26 15:44:41

标签: java android

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

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

18 个答案:

答案 0 :(得分:302)

有一种方法可以在Eclipse中轻松更改包名称。右键单击您的项目,向下滚动到Android Tools,然后单击Rename Application Package。

答案 1 :(得分:102)

如果您使用的是Eclipse,可以尝试使用Android开发者网站上的these instructions。它们专门用于GestureBuilder示例,但应该适用于任何应用程序,据我所知:

  

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

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

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

答案 2 :(得分: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应用程序。
  6. Link to post

    <强>更新 超级简单的方法 右键单击您的项目...... enter image description here

答案 3 :(得分:11)

Android Studio 中,说实话,您应该使用,在right-clicking

的包名称上更改project structure -> Refactor -> Rename...的包名称

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

最后,在AndroidManifest.xml中相应地更改软件包名称。否则你会在各处抱怨R.whatever。

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

首先使用所需名称by right clicking on the java文件夹创建一个新包 - &gt;新的 - &gt; package.`

然后,选择并将所有类拖到新包中。 AndroidStudio会在任何地方重新计算软件包名称。

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

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

原帖和更多评论here

答案 4 :(得分:8)

没有Eclipse:

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

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

  3. 重命名所有文件夹以匹配包名称。文件夹位置:
    一个。斌/班
    湾根
    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是在pre中自动生成的-compile但R.java不是)

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

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

答案 5 :(得分:6)

请按以下步骤操作: -

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

完成

答案 6 :(得分:6)

在Android Studio 1.3中执行此操作的最快方法

  1. 更改manifest
  2. 中的包名称
  3. 转到Module Settings[F4]-> Flavors,转到Application Id,写相同的名称。
  4. 使用该名称创建新包:[right-click-> new-> package]
  5. 选择项目的所有java文件,然后继续[Right-click-> Refactor-> Move-> {Select package}-> Refactor]
  6. P.S。如果您不遵循此顺序,您最终可能会使用新导入和一堆编译时错误逐个更改所有java文件,因此顺序非常重要。

答案 7 :(得分:5)

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

  1. 右键单击包名称,然后点击Refractor&gt;重命名。
  2. 右键点击项目名称Android工具&gt;重命名应用程序包。
  3. 在Manifest中手动设置尚未通过前面步骤更改的包名称。

答案 8 :(得分:3)

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

答案 9 :(得分:3)

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

答案 10 :(得分:3)

  1. Fist更改清单文件中的包名称
  2. 重新因子&gt;在src文件夹中重命名包的名称,并勾选rename subpackages
  3. 这就是你所做的一切。

答案 11 :(得分:2)

对于没有Eclipse的用户,还有另一种解决方案,只需更改&lt; manifest&gt;中的包属性即可。 AndroidManifest.xml中的标记,通过替换使用新包名称的旧包名称。 注意:您必须在项目中手动调整所有相关的导入语句和相关文件夹。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="new.package.name"
    .....
</manifest>

答案 12 :(得分:1)

替代方案:

  1. 打开AndroidManifest.xml
  2. 更改套餐=&#34;新名称&#34;在清单标签内。

答案 13 :(得分:1)

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

通过使用Refactor-&gt; Move,IntelliJ更新了对BuildConfigR的所有引用。

最后我更新了我在gradle.build找到的所有applicationId [s]。我点击了Clean Project,Make和Rebuild Project。从手机中删除了该应用,点击“播放”。这一切都很成功,因此重构很简单,也很快。

答案 14 :(得分:1)

在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上传到谷歌商店。确保您已将应用程序签名以将其上传到商店。

答案 15 :(得分:1)

我只是花了几个小时尝试所有解决方案。我确定,问题出现在我的代码中 - 在开始使用apk时,但在使用不同的类和活动时会出现一些错误。

只使用我的项目:

  1. 重命名 - 文件/重命名并选中所有复选框
  2. 检查非重命名的地方,我在其中一个布局旧名称仍在工具中:context =“..
  3. 创建新工作区
  4. 将项目导入新工作区
  5. 对我而言,它只有解决方案。

答案 16 :(得分:1)

  1. 右键单击项目&gt; Android工具&gt;重命名应用程序包

  2. 转到src并右键单击主包&gt;重构&gt;重命名

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

答案 17 :(得分:0)

  1. 在Android Studio中的项目面板上,有齿轮图标“单击”。
  2. 取消选中紧凑空中间包装
  3. 现在,软件包目录已分解,即单个目录。
  4. 选择要重命名的目录。
  5. 右键单击该特定目录。
  6. 选择重构,然后重命名选项。
  7. 对话框已打开,重命名。
  8. 输入新名称后,单击“重构”。
  9. 然后单击底部的“执行重构”。
  10. 然后android studio将更新所有更改。
  11. 现在打开build.gradle文件并更新applicationId并对其进行同步。
  12. 现在转到清单文件并重命名程序包。
  13. 重建项目。
  14. 您已完成:)