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

我的密钥库已损坏,因此Android Market要求我重命名应用程序并重新提交。 但是,无论何时我在Manifest和整个文件中编辑包名,都会给我带来很多的错误。

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

如果您使用Eclipse,则可以尝试Android开发人员网站的这些说明 。 他们是专门为GestureBuilder样本,但应该适用于任何应用程序,据我所知:

在你如何在Eclipse中做到这一点:

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

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

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

这里是你如何在Eclipse中做到这一点:

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

链接到post

更新超级简单的方式右键单击您的项目… 在这里输入图像描述

Android Studio中 ,老实说,您应该使用,通过right-clicking project structure -> Refactor -> Rename...的包名称来更改包名project structure -> Refactor -> Rename...

然后它给出了重命名目录或包的选项。 select包。 该目录应该跟随。 input新的软件包名称,然后单击重构。 它会改变所有的import,并为您删除多余的import。 你甚至可以在注释和string等方面为你修复

最后 ,在您的AndroidManifest.xml中相应地更改包名。 否则,你会得到错误无处不在抱怨R.whatever。

另一个非常有用的解决

首先by right clicking on the java文件夹 – >新build – > package.` by right clicking on the创build一个新的包

然后,select并拖动所有的类到新的包。 AndroidStudio将在任何地方重新包装软件包名称。

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

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

原帖和更多评论在这里

没有Eclipse:

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

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

  3. 重命名所有文件夹以匹配软件包名称。 文件夹位置:
    一个。 斌/class
    湾 根
    C。 SRC

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

  5. 删除bin / classes / com / example / myapp /中的所有.class文件(如果跳过这一步,则在构build过程中文件不会被重写,dex会给出一堆麻烦处理“class name不匹配path”错误

  6. 删除gen / com / example / myapp / BuildConfig.java(我不知道为什么在步骤3a中删除BuildConfig.class并不会导致dex更新它的path,但是直到我删除了BuildConfig.java时,它才重新创build了gen / com / oldapp_example / oldapp,并把BuildConfig.class放在那里,我不知道为什么R.java从同一个位置没有这个问题,我怀疑BuildConfig.java是在预编译时自动生成的,但R.java不是)

以上6个步骤是我做了我的包名更改并获得成功的*build立。 通过dex命令更新path,或者编辑项目根目录下的classes.dex.d,可能有更好的方法来处理步骤5和步骤6。 我不熟悉DEX或删除/编辑classes.dex.d是否可以,所以我去删除.class文件的方法,我知道将在构build中重新生成。 然后我检查了classes.dex.d,看看还有什么需要更新的。

*没有任何错误或警告留在我的build设除了dex和apkbuilder都声明“find已删除的目标文件”没有关于什么文件的具体内容。 不知道这是否出现在每一个版本,如果它之前,我弄乱我的包名称,或者如果这是我删除的结果,我错过了一个步骤。

按着这些次序:-

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

DONE

Android Studio 1.3中最快的方法是

  1. 更改manifest的软件包名称
  2. 进入Module Settings[F4]-> Flavors ,进入Application Id编写相同的名称。
  3. 使用该名称创build新的软件包: [right-click-> new-> package]新build[right-click-> new-> package]
  4. select你的项目的所有Java文件,然后继续[Right-click-> Refactor-> Move-> {Select package}-> Refactor]

PS如果你不遵循这个顺序,你最终可能会用新的导入和一堆编译时错误逐个更改所有的java文件,所以顺序非常重要。

改变包名称是一个痛苦的屁股。 看起来不同的方法适用于不同的人。 我的解决scheme是快速和无错的。 看起来像没有清洗或重置日食是必要的。

  1. 右键单击包名称,然后select“折射”>“重命名”。
  2. 右键单击项目名称Android工具>重命名应用程序包。
  3. 在Manifest中手动设置尚未被上述步骤更改的软件包名称。
  1. 首先在清单文件中更改软件包名称
  2. 重新设置>重新命名src文件夹中的包名,并为rename subpackages打上勾号
  3. 这就是你所做的一切。

伯恩斯坦有方法,使用Eclipse工具,“重命名应用程序包”,即使在事实之后,您也可能需要做一些清理工作。 另外,当你修改一个项目时,Eclipse有时会丢失一些东西。 您可能必须使用“Clean Project”工具(在“Project”菜单下)。如果这样做不起作用,您可能需要closures并重新启动Eclipse。 Voo-doo解决scheme,但Eclipse可以这样。

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

对于没有使用Eclipse的用户来说,还有另一种解决scheme,只需更改AndroidManifest.xml中的<manifest>标记中的package属性,将旧包名replace为新包。 注意:您必须在项目中手动调整所有相关的导入语句和相关文件夹。

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

替代scheme:

  1. 打开AndroidManifest.xml
  2. 清单标签中更改包=“NEW NAME”。
  1. 右键单击项目>安卓工具>重命名应用程序包

  2. 转到src并右键单击您的主包>重构>重命名

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

我尝试了所有的解决scheme,只花了几个小时 我确定,问题是在我的代码 – apk的开始,但一些错误时,与不同的类和活动工作。

只有方式与我的项目一起工作:

  1. 重命名它 – 文件/重命名并检查所有checkbox
  2. 检查非重命名的地方,我有一个布局旧名称仍然在工具:上下文=“..
  3. 创build新的工作区
  4. 将项目导入新的工作区

对我来说,它是有效的,只有解

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

Refactor -> Rename并给你新的名字。 你必须为每个文件夹,比如com,example和myapp。 它会自动更新导入,所以你不必担心它。 在这里输入图像描述

同时更新没有自动更新的文件build.gradle

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

之后,它会要求sync做到这一点。 那么一切都会好的。 在此之后,我可以将APK上传到Google商店。 确保你已经签名你的应用程序上传到商店。

所以,在Android(Studio)插件中使用IntelliJ是:我去了AndroidManifest.xml的顶部,并通过右键单击 – > Refactor – > rename来更改软件包名称。 我们的包名有四个部分abcd ,新的只有abc 。 所以我改名了前三名 然后我去了生成的源文件目录( app\build\generated\source\r\development\debug\a\b\c\d ),右键单击R class和Refactor->将它移动到一个包更高。 与app\build\generated\source\buildConfig\development\debug\a\b\c\d BuildConfig一样。

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

最后,我更新了我在gradle.build中find的所有applicationId [s]。 我打了清洁项目,制作和重build项目。 从手机中删除应用程序,然后点击“播放”。 这一切都解决了,所以重构很简单,而且速度很快。

这里是一个简单的一步一步的过程,以改变在Android Studio中的Android应用程序包名称… https://stackoverflow.com/a/46945668/6915572