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

是否包含自动重构?

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


当前回答

对我来说,我只是更改了库模块的目录名而不是包名,并单击了底部的Do refactor(示例:从com.reg.register->com.reg1.register)。

之后,确保更新了buildgradle文件和manifest文件中的新目录名。

重建项目。

其他回答

包装有两个目的。一个是在Google Play商店中唯一识别您的应用程序。另一个是为构建项目时生成的R.java类命名包。您可以将第一个目的看作外部包,第二个目的看作内部包。假设您想更改外部包,以便在Play商店中进行识别,有一种方便的方法可以做到这一点。

在Android Studio中,

 choose File -> Project Structure -> Choose your app's module -> Click on the 
 Flavors tab -> change the Application id.

现在,当您构建项目时,您的APK和清单将使用此新的包名称。

如果重命名的唯一原因是避免与具有相同包名的另一个构建(或系统应用程序)发生冲突,那么您可以改为仅重命名应用程序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)。但是,更改包名还有其他后果,您应该注意,因此请参阅有关如何更改包名的部分。

一定要去Sheharyar的伟大答案。随之而来的答案和评论太多,很容易让人感到困惑和放弃,但不要。这个答案有效。

简而言之,你要做三件事:

(1) 取消选择压缩空中间包装。

(2) 然后,通过选择“更改包”(而不是“更改目录”)来重命名每个旧目录节点,以匹配新的包名称。(请务必预览更改。)

(3) 编辑build.gradle文件,使APPLICATION_ID与新的包名匹配。

我看过最热门的答案,但我发现这样做有点不同,我尝试做最完整的教程。

在Android Studio中,单击齿轮图标(),然后选择选项:“压缩空中间包”,以在树视图中查看分开的文件夹。

现在选择文件夹,单击右键打开上下文菜单,选择Refactor,然后重命名

建议您重构包:

然后一个窗口将显示项目内的巧合,选择“Do Refactor”:

我们不必手动更改AndroidManifest.xml或build.gradle文件,重构包就可以了!。

例如,如果您希望将包从com.example.a更改为com.example.b

1) 将项目样式文件夹从android更改为package(在项目端)

2) 右键单击文件夹顶部,然后单击路径中的替换

3) “在项目中选择”按钮

4) 在第一输入write com.example.a

5) 在第二输入中写入com.example.b

6) 当您看到警告时,选择“全部替换”以替换值

完成替换后,您可以看到您的包名为com.example.b