如何在基于IntelliJ IDEA的新IDE Android Studio中重命名软件包?
是否包含自动重构?
我想进行大规模重构,但我不知道怎么做。我在Eclipse工作了两年,在Eclipse中它是一个一键操作。
如何在基于IntelliJ IDEA的新IDE Android Studio中重命名软件包?
是否包含自动重构?
我想进行大规模重构,但我不知道怎么做。我在Eclipse工作了两年,在Eclipse中它是一个一键操作。
当前回答
问题是:
是否包含自动重构?
我想进行大规模重构,但我不知道怎么做。我在Eclipse工作了两年,在Eclipse中它是一个一键操作。
好吧,几乎只需单击一下即可自动重构,但只需先迈出一小步,即创建新包的一小步。下面是完整的解决方案。
您可以通过创建新包(包括所需的文件夹路径)来重命名包,然后从旧包中拖放(并让Android Studio负责从旧包到新包的各种引用的重构),如下所示:
右键单击应用程序下的java。选择新建并打包选择新包的位置为/app/src/main/java输入新包的全名将创建新包。现在,从旧包拖放到新包。如果您想检查AndroidStudio是否正确执行重构,请预览重构。如果一切看起来都很好,请继续重构。
注意:由于应用程序ID和包名现在是分离的,请注意,以上内容仅用于重命名包名。要更改应用程序ID,可以在build.gradle中执行。
其他回答
请尝试以下步骤:
单击设置档位图标并取消选择压缩空中间包现在,我们可以看到每个包文件夹都被分解为多个部分现在右键单击第一个包文件夹>>重构>>重命名现在将显示一个警告,但您可以继续并单击“重命名”包裹之后,输入域名作为软件包名称单击“Do Refactor”现在它已经更改了应用程序的包域名。现在更改根据您的要求提供域名扩展名和应用程序文件夹名称现在在gradle脚本中打开build.gradle(模块:app)。此处更改应用程序id并单击“立即同步”。
*******终于完成了******
我尝试了两个最热门的解决方案,但发现了一些问题,尽管这两个方案在某种程度上都有效。
列表项:新的包拖放方法保持一些不变,并产生一些不希望的效果列表项:重命名包仅更改包名称的最后一部分
经过一些实验,我发现下面的方法对我很有效。
如果您只需要更改包名的最后一部分,请使用GreyBeardedGeek概述的方法,即
右键单击“项目”窗格中的包。从上下文菜单中选择Refactor->Rename
如果需要更改整个包名,请执行以下操作。
右键单击“项目”窗格中的包。从上下文菜单中选择Refactor->Move
这将创建一个新的包文件夹(必要时),但将保留包名称的最后一部分。如果需要更改最后一个零件,请相应地进行重命名。
还请注意,您可能需要修改例如build.gradle、manifest和/或任何xml资源文件中的包名,甚至需要修改硬编码的代码中的包名称。之后,根据需要执行同步/清理/重建项目。
在使用这些技术之一重命名包之后,可能会开始看到错误。
如果/当你的R.java没有正确生成时,你会在项目中收到很多错误,比如错误:找不到符号类R,以及错误:包R不存在。
记住检查应用程序清单xml。清单包名称必须与实际包名称匹配。R.java似乎是从应用程序清单生成的,如果不匹配,可能会导致这些错误。
记住检查<manifestpackage=“com.yourcompany.coolapp”>中的package属性匹配
打开文件:应用程序→ 舱单→ AndroidManifest.xml突出显示要修改的包名称中的每个部分(不要突出显示整个包名称),然后:鼠标右键单击→ 重构(Refactor)→ 重命名→ 重命名程序包键入新名称并按(Refactor)在包名称的每个部分执行这些步骤。打开(Gradle脚本)>>(build.Gradle(Modul:app))并将applicationId更新为包名打开菜单(构建)并选择(重建项目)。
第一部分包括在java文件夹下创建一个新包,然后选择并将所有源文件从旧包拖到这个新包。之后,您需要将android manifest中的包名称重命名为新包的名称。在步骤2中,这是您需要做的。除了更改清单中的包名之外,您还需要更改android studio中模块build.gradle下applicationId中的旧包名。总之,单击“AndroidManifest.xml”下面的build.gradle并将applicationId的值修改为新的包名。然后,在顶部,建造不足。清理项目,然后重建。从这里开始应该很好。