当前位置: 首页 > 知识库问答 >
问题:

在Android Studio中重构/重命名软件包名称,但不能正常工作

莘俊能
2023-03-14

首先,我承认无数关于重构包名称的帖子。我研究了很多,但没有一个答案对我有效。我想知道是否有人有这样的问题,或者是否有人知道如何解决这个问题。

以下是我所尝试的,几乎所有这些线程中的每一个不同的变体答案以及这里未包括的其他答案:

如何重命名android包名?

当我创建我的项目时,我比现在更绿,所以让公司给我起了名字。现在,我即将推出我的应用程序,我意识到,我的名字作为包名“公司”看起来不像我的公司那么精致和专业,显然。所以我尝试重构包名,如下所示:

Current=FirstLast.AppName

我遇到的问题:我尝试通过实际重构来重构,IntelliJ实际上并不重构所有的东西,我在清单和gradle中更改了包名,但仍然不起作用。更糟糕的是,在清理完所有错误后,新的包在项目目录中随机弹出并带有旧包名,我删除了这些,然后弹出更多的包。我再次删除这些,最后只剩下新的包目录。但是,我清理和重建,没有错误,但当我尝试启动时,我得到:在清单中引用的类在项目或库中找不到,一些与DEX有关的东西。我追踪并修正了这些错误,但却一无所获。在这一点上,我的项目是如此糟糕,我考虑删除它,并使用一个备份。相反,我用历史回到过去...

我还尝试创建一个新的包,将所有的类和文件移到新创建的包中,并删除旧的包,但这有它自己的蠕虫,似乎比上面的更混乱。

我不明白为什么这不简单。非常感谢任何帮助!

编辑:可能的“绕”

我在看这个文档:

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

所以我想知道,(新问题,唯一相关的问题)如果我像这里一样重命名应用程序ID,并且它只在gradle构建文件中更改,这是否适用于我的应用程序包名称,以便提交到应用程序商店以及共享应用程序?或者我需要实际上完全重构包吗?

共有1个答案

洪琦
2023-03-14

首先,您必须在java包下创建您想要的包名。在java下创建您想要的包名称之后,您必须选择所有的类、包和活动,并将它们放入新包中。您可以通过选择所有的文件并剪切和粘贴到新的一个,也可以选择和拖放到新的包。我认为拖放是最有效的方法。删除src文件夹下的text和AndroidTest包这些文件夹是自动生成的,并且在创建新包名称时也会自动生成。

其次,转到build.gradle(app)然后选择application id

选择后按Ctrl+Shift+R键,将显示此屏幕

添加新包名后,您必须单击replace all按钮,该按钮将用新包名替换所有旧包名,然后同步build.gradle

 类似资料:
  • 嗨,有没有一种方法,我可以重命名的包名称使用这种格式 而不是仅仅 我尝试使用我想要的包名称,但它一直得到 或com+最后一个字后的最后一个“。 我这样做的原因是,我有一个需要一个包名,而我在该库中设置的包名是固定的,我不能更改它 对不起,我的英语不好

  • 我有一个原型项目,它的外观如下所示(有两个模块,和): 并且,当我使用工件id为“infra”的原型生成一个项目时,它应该生成如下结构: 不起作用的是,在父pom.xml中,我包含了以下模块: 这些模块条目不会被重命名为类似于(在生成时): 这就是我想要的。 知道怎么做吗,谢谢。 更新我在这里按要求添加元数据xml文件,但我不想修改archetype-metadata.xml文件。因为我想使用cr

  • 我正在尝试将给定目录中的所有文件重命名为大写。它完成了整件事,但在文件夹中没有做任何事情文件名仍然相同。 它在控制台中打印“Done”,但实际上什么都没做

  • 问题内容: 我的$ GOPATH是 我当前的golang版本: 我在这个工作区下有多个golang项目,所以这是目录的结构 在proj1的main.go中,我将使用该项目下其他软件包的导入,如下所示: 但是,当我运行“ go build”时,我一直在收到错误消息: “ 无法加载包:非本地包中的本地导入“ ../package” 如果我不想使用相对的包路径,例如使用它: 然后一切都会正常。 如果使用

  • 我想知道如何更改包名称我的项目没有任何错误。我试了很多次,但最后却有很多错误。例如导入语句中的错误,R类错误...等等,请帮助我解决这个问题。谢谢

  • null 那么有没有办法用AndroidStudio移除包名的一部分呢?