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

是否包含自动重构?

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


当前回答

我没有看到任何人指出这一点,这就是为什么我要写这个答案。我会把这个答案添加为评论,因为它真的不应该是一个答案,但我在Stackoverflow上没有足够的信誉点来留下评论。

我想将我的包名从com.param.myapp更改为com.pvs.myapp。我在互联网上遵循了每一个解决方案,但忘记将android块build.gradle(:app)中的命名空间“com.param.miapp”更改为“com.pvs.myapp”。我不确定名称空间行是否需要存在,但它给了我错误。AndroidStudio使用旧包名生成类。

记住要检查一下!

其他回答

更新答案:2015年5月

好吧,我一直在努力在Android Studio中克隆和重命名项目,但最终我实现了这一目标。以下是需要遵循的步骤:

复制项目文件夹,重命名并用Android Studio打开从资源管理器重命名模块目录重命名projectName.iml和内容重命名idea/.name内容在项目窗格中,单击小齿轮图标->取消选中“压缩空中间包”为新的包名重构src目录(重命名包,“不重命名目录”)在build.gradle中重命名应用程序idsettings.gradle重命名模块

就是这样。。。

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

右键单击根文件夹,然后单击打开的模块设置。之后,转到口味选项卡并根据需要更改应用程序id。

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

这是谷歌写的

在build.apk的清单中使用的最后一个包是“应用程序id”,它是您的应用程序在设备和Google Play商店中的名称。

and

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

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

我尝试了两个最热门的解决方案,但发现了一些问题,尽管这两个方案在某种程度上都有效。

列表项:新的包拖放方法保持一些不变,并产生一些不希望的效果列表项:重命名包仅更改包名称的最后一部分

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

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

右键单击“项目”窗格中的包。从上下文菜单中选择Refactor->Rename

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

右键单击“项目”窗格中的包。从上下文菜单中选择Refactor->Move

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

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

更改程序包名称


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



右键单击>重构>重命名



在新窗口中,按Rename package



更改名称并按Refactor



…然后按底部的Do Refactor。



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

完成!您已更改包名称!

在java目录中创建一个新的包,并将项目移动到该包中。就像您当前的项目id是com.testapp.user,您希望将其更改为xyz.testpp.user。然后在src/java目录中创建一个名为xyz的包,并将您的子包testapp.use移动到xyz中。最后,更新build.gradle和manifest项目id。