Android Studio中重构/重命名包名没有按预期工作

5

首先,我承认有很多关于重构包名的帖子。我研究了许多这些帖子,但其中没有一个答案适用于我的情况... 我想知道是否还有其他人遇到了这样的问题或者是否有人知道如何解决。

以下是我尝试过的所有不同变体的答案,包括本文中未提及的其他线程:

在Android Studio中重命名包

在Android Studio中重构包名

如何重命名Android包名?

当我创建我的项目时,我比现在更加稚嫩,所以只是把公司名字改成了我的名字。现在我即将推出我的应用程序,我意识到将我的名字作为软件包名“company”看起来并不像使用公司名那样精美和专业。因此,我正在尝试重构软件包名称如下:

当前 = firstlast.appname

重命名 = com.companyname.appname

我遇到的问题: 我尝试通过实际的重构来重构,但IntelliJ实际上并没有重构所有内容,我在清单文件以及gradle中更改了包名,但仍然无法正常工作。然后更糟糕的是,在清理了所有错误后,新的包会在项目目录中随机出现具有旧的包名称,我删除这些包,然后又会出现更多。我再次删除这些包,最终只剩下新的包目录,但是当我尝试启动时,我收到以下错误消息:清单中引用的类在项目或库中找不到,与dex有关... 我追踪这些错误并修复它们,但无济于事。此时我的项目已经混乱不堪,我考虑删除它并使用备份... 相反,我使用历史记录回到过去...

我还尝试创建一个新的包,并将所有类和文件移动到新创建的包中,然后删除旧的包,但这似乎比上述方法更混乱。

我对这为什么不能简单些感到非常困惑。非常感谢任何帮助!

编辑:可能的“替代”方案

我查看了以下文档:

https://developer.android.com/studio/build/application-id.html

我使用以下指令来重命名应用程序ID:

非常容易一步完成更改应用程序ID(现在独立于包名)。您不必触摸AndroidManifest。而是执行以下操作: 右键单击项目的根文件夹。 单击“打开模块设置”。 转到Flavours选项卡。 将applicationID更改为您想要的任何包名。按下确定。

如下所示:

在Android Studio中重命名包

我有一个问题,如果我像这里一样重命名应用程序ID并且只更改gradle构建文件中的名称,那么这是否适用于我的应用程序提交到应用商店以及分享应用程序时的软件包名称?或者我需要完全重构包名称?

2个回答

12
首先,在Java包下创建所需的包名称。在创建所需的Java包名称后,选择所有类、包和活动并将它们放入新包中。可以通过选择所有文件并剪切粘贴到新文件夹中,也可以选择并拖放到新包中完成此操作。我认为拖放是最有效的方法。
删除src文件夹下的文本和AndroidTest包,这些文件夹是自动生成的,当创建新包名称时它们也会被自动生成。

enter image description here

其次,您需要前往build.gradle(app)文件并选择应用程序ID。

enter image description here

选择后按Ctrl+Shift+r,然后会出现此屏幕。

enter image description here

在添加新的包名后,您需要点击“全部替换”按钮,以将旧的包名全部替换为新的包名,然后同步build.gradle文件。


2
在Android Studio中,你可以这样做:例如,如果你想将com.example.app更改为my.awesome.game,那么:
1. 在项目窗格中,点击小齿轮图标 enter image description here 2. 取消勾选“紧凑显示空的中间包”选项

enter image description here

3. 现在,您的包目录将被拆分为单独的目录。 4. 逐个选择要重命名的每个目录 enter image description here 现在打开您的Gradle构建文件(build.gradle - 通常是app或mobile)。将defaultConfig中的applicationId更新为新的包名,并同步Gradle,如果尚未自动更新:

enter image description here

然后清理和重建。

enter image description here

你可能需要在你的清单文件中更改package=属性,或者在你的build.gradle文件中更改命名空间,这取决于你使用的Gradle版本。
希望这能对你有所帮助,原始帖子来自@aditya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接