如何在基于IntelliJ IDEA的新IDE Android Studio中重命名软件包?
是否包含自动重构?
我想进行大规模重构,但我不知道怎么做。我在Eclipse工作了两年,在Eclipse中它是一个一键操作。
如何在基于IntelliJ IDEA的新IDE Android Studio中重命名软件包?
是否包含自动重构?
我想进行大规模重构,但我不知道怎么做。我在Eclipse工作了两年,在Eclipse中它是一个一键操作。
当前回答
一个人可能犯的常见错误是无法重命名包结构,即当试图在com.name.android级别进行修改时,无法将com.name.aandroid更改为com.Renamed.android。
为了获得相同的所需更改,请升级一个级别,即com.name,在重构时将其更改为Renamed。这将永远有效。
其他回答
我找到了一个更容易解决这个问题的方法,它也改变了生成的导入,比如com.test.testpackagechange.R,只需要一分钟。
第一步是打开Android Studio并打开替换所有窗口(Mac:cmd+shift+R,我假设Windows为:ctrl+shift+R)。输入您的旧软件包名称和新软件包名称下面的名称。单击查找。这可能需要一段时间,因为它也在查看生成的项目。如果点击次数超过1000次,只需单击“继续”。
完成后,按下“全部替换”,用新的包名替换旧的包名。
现在关闭Android Studio并转到Mac上的Finder或Windows上的Windows Explorer。将文件夹的名称更改为新的程序包名称,如下所示:
现在再次打开Android Studio。Gradle将同步,您的包名应更改为新的包名。
我发现这是最简单的一个,它涵盖了所有领域,比如生成的文件。
另一个好方法是:首先右键单击Java文件夹,创建一个具有所需名称的新包→ 新→ 包裹
然后,选择并将所有类拖到新包中。AndroidStudio将到处重构包名。
最后,删除旧包。
完成。
非常重要:
如果使用此方法,则必须手动将AndroidManifest.xml和build.gradle文件更改为新包。
在Java文件夹中选择软件包名称。移位+F6更改软件包名称并单击“确定”。
您的包名将从所有Java文件和清单文件中更改。您必须从build.gradle手动更改包名。
按Ctrl+Shift+R用新包装替换旧包装。右键单击程序包名称。重构>重命名并重命名为新的
如果重命名的唯一原因是避免与具有相同包名的另一个构建(或系统应用程序)发生冲突,那么您可以改为仅重命名应用程序build.gradle文件中的applicationId。
示例:假设您已经安装了一个id为com.android.phone的应用程序(您希望保留它),请将app/build.gradle更改为:
android {
defaultConfig {
applicationId "com.android.phone.mymod"
}
也就是说,如果你已经有一个软件包名为com.android.phone的应用程序,并且不想/无法卸载它(例如,因为它是一个系统应用程序,设备没有根目录),那么上面的更改就是所有需要的,以便将你的应用程序与原始应用程序并排安装。在设备上,applicationId将被使用,而不是实际的包名。此外,您的应用程序数据将存储在/data/data/com.android.phone.mymod下,而不是/data/ddata/com.andrid.phone下。
没有。在某些情况下,您可能还需要重命名AndroidManifest.xml文件中的提供者和权限的名称。
参考:
https://developer.android.com/studio/build/application-id
在AndroidStudio中创建新项目时,applicationId与安装过程中选择的Java风格包名称完全匹配。但是,应用程序ID和包名称在此之外彼此独立。您可以更改代码的包名称(代码名称空间),这不会影响应用程序ID,反之亦然(不过,再次声明,发布应用程序后,您不应更改应用程序ID)。但是,更改包名还有其他后果,您应该注意,因此请参阅有关如何更改包名的部分。