如何在Android Studio中移动和重命名项目?

35

这应该是一个非常简单的问题 :)

我有一个正常工作的项目。现在我想要重命名它并更改项目文件夹的路径。起初似乎很简单:右键单击-> "移动"和"重构/重命名"。

移动并重命名我的项目文件夹和apk模块后,项目结构与以前不同。我的项目库被包含了两次。 我查看了'.iml'文件,并发现之前的路径已被包含 - 所以我进行了更改。此后,我可以通过命令行编译我的项目,但不能使用IDE。在那里我得到了这个错误:

NullPointerException: no project directory specified

如何默认移动和重命名项目?我通过创建一个新项目并复制所有文件来解决了我的问题,但是知道这个“问题”的解决方案会很酷。

编辑:

原始项目结构:

MyProject
--- libraries
--- MyApp

搬迁后:

MyProject
--- MyProject (new path)
--- MyProject (old path)

我认为我不仅需要复制项目。我必须以某种方式指定“新”项目,是吗?


我也遇到了同样的问题,但是在我的情况下(使用Android Studio 3.4.1),解决方法很简单:只需在项目文件夹中搜索AndroidManifest.xml文件并打开它。IDE会为您完成所需的操作。 - Roger
12个回答

51

在Android Studio中关闭项目(文件->关闭项目)。通过移动其主目录/目录来移动项目并重命名它。从Android Studio中打开新项目(文件->打开)。


嗨,鲍里斯,我试了你的回答。但它并没有像预期的那样工作。请看上面的我的编辑。谢谢! - owe
4
有一个关于这个答案错误的 bug 在2013年6月5日被报告,截至2014年12月19日仍未修复:https://code.google.com/p/android/issues/detail?id=56284 - Kevin Krumwiede
1
@sunshine..将你的项目与Gradle同步,它会在java文件夹下显示你现有的Java文件。 - Prabs
4
工具 -> Android -> 与Gradle文件同步项目 - Borzh
项目的本地历史记录不会以这种方式被移动/更新。 - Neurotransmitter
显示剩余5条评论

22
在Android Studio 0.8.+版本中,你可以点击F6来移动它。
如果你使用的是1.0.2或更高版本,请确保选择“Project”视图以使重构->移动菜单选项可用。
感谢@DavidsAlias指出这一点。

1
在1.0.2中,这个操作没有任何作用。 - Kevin Krumwiede
5
你需要选择“项目”视图,才能使“重构->移动”菜单选项可用。在“Android”和“包”视图中,此选项是不可用的。 - DavidsAlias
接下来,您需要通过右键单击它并将其重新打开为“现有项目”,从Android Studio欢迎窗口中删除该项目。这将更新配置文件中所有剩余的过时路径。 - ubuntudroid

14

将项目文件移动到您喜欢的位置,然后执行以下操作:

工具 -> Android -> 与Gradle文件同步项目


9

使用Android Studio 1.1.0在文件系统中移动项目的方法如下:

  • 关闭Android Studio中的项目(文件 -> 关闭项目)
  • 将项目文件夹移动到所需位置
  • 导入项目到Android Studio中(文件 -> 导入项目...)

5
在Android Studio中,我发现以下两种方法对于已复制|移动|重命名的项目都能正常工作。
方法1:导入
1. Build > Clean Project 2. File > Close Project 3. 复制、移动和/或重命名文件夹 4. 删除/old_name.iml(不再需要) 5. File > New > Import Project...
方法2:与Gradle文件同步
1. Build > Clean Project 2. File > Close Project 3. 复制、移动和/或重命名文件夹 4. 删除/old_name.iml(不再需要) 5. File > Open 6. Tools > Android > Sync Project with Gradle Files
两种方法的结果相同。导入方法可以省去一步操作,并且方便地位于欢迎界面和File > New菜单中。与Gradle文件同步的方法在菜单中比较隐蔽,但是如果您误打开了项目而本意是要导入,则该方法是个好备选方案。

3

对于Android Studio 3,似乎只需要做以下几步:

  1. 将项目移动/重命名到Android Studio之外。
  2. 工具 -> Android -> 同步Gradle文件
  3. 构建 -> 重新构建项目

我在移动和重命名项目后无法部署到模拟器。按照上述步骤解决了这个问题。


稍作澄清:确保在移动项目之前关闭它。打开已移动的项目,然后使用“Sync Project with Gradle Files”进行同步。最后进行“Rebuild”。 - SMBiggs

1

适用于Android 3.3.2及以上版本

  1. 在项目菜单中设置您的项目
  2. 选择文件夹名称
  3. 在顶部菜单栏中,选择重构 > 移动

务必选择带有项目名称的文件夹

  1. 选择要移动到的目录并确认移动
  2. 关闭所有项目并导入 > (已移动的项目)
  3. 从设备中卸载该应用程序

    重要!!

  4. 关闭即时运行以避免apk安装过程查找现有切片(显然缓存清理不能解决此问题)。请参阅此处的SO答案。 文件 > 首选项 > 构建、执行、部署 > 即时运行 > 取消勾选启用框

  5. 顶部菜单栏 -- 文件 > 无效缓存 / 重启(我只是使其无效)

  6. 运行应用程序 10.现在可以在首选项中重新启用即时运行。
那应该就可以了。

1

以下是我复制/移动项目的步骤。我使用的是Android Studio 2.3.2版本。

  1. 将整个项目目录复制到所需位置。
  2. 将项目目录重命名为任何您选择的名称。
  3. 在新项目中,找到workspace.xml文件并手动更新。我的文件位于主项目目录下的/.idea文件夹中。
  4. 完成workspace.xml中语句更改后,启动Android Studio并打开一个“现有项目”。选择“Build / Rebuild”并重新构建项目。

以下是需要更改的一些示例语句:

<entry file="file://$PROJECT_DIR$/app/src/main/java/com/NEW_SITE_NAME/NEW_SITE_PACKAGE)/MainActivity.java">

<option name="name" value="NEW_ROOT_DIRECTORY_NAME" />

<option name="KEY_STORE_PATH" value="C:\... YOUR KEYSTORE PATH ...\keystore.jks" />

<option name="KEY_ALIAS" value="newrootdirectoryname" />

<option name="name" value="NEW_ROOT_DIRECTORY_NAME" />

还有其他的语句,许多语句是相同的。你应该能够理解这个想法。正确完成这个任务的关键是使用现有workspace.xml文件中已经存在的相同命名方法。如果你使用搜索和替换,这个过程就会相当简单,只需要几分钟。

希望这能帮助到某些人!


0

在Android Studio 1.5中

  1. 选择项目级别的视图层次结构。
  2. 选择项目文件夹,例如com.example.app1,右键单击->重构->移动...或F6。
  3. 勾选移动包'com.example.app1'到另一个包中,可能会生成警告,只需选择“确定”并输入您的新路径,例如“com.hi.app2”,然后单击“确定”,它会要求创建一个新文件夹,选择“确定”。
  4. 从文件->关闭项目中关闭项目
  5. 选择打开现有的Android Studio项目
  6. 只需删除所有旧文件夹,例如example和app1。
  7. 清理并重新构建项目。

这将更新移动和重命名项目路径。


0

我刚刚成功地将我的C:\项目移动到了便携式M:\驱动器中。

  1. 在所需的文件路径中创建一个相同的项目。
  2. 打开原始项目。
  3. 在侧边栏找到Java文件,将它们全部复制到剪贴板中。
  4. 打开“新”项目。
  5. 将文件粘贴到适当的Java文件夹中(如有需要,请覆盖)。
  6. 对于您的活动文件,也是同样的操作,将它们粘贴到布局文件夹中(如有需要,请覆盖)。
  7. 保存新项目并关闭应用程序。
  8. 启动Android Studio。
  9. 打开您的“新”项目。
  10. Android Studio会要求您选择原始项目或项目设置。
  11. 选择项目设置,忽略默认设置按钮。
  12. Android Studio将在新的文件路径目标中重新构建您的“新”项目。
  13. 模拟器将显示为损坏状态,请选择修复设备。
  14. 运行您的“新”项目。
  15. 一切都应该正常运行。(请记住,原始项目仍然安全可靠,启动原始项目将带您进入第10步,选择默认设置以恢复到先前状态。)

我知道这有点麻烦,但这是我找到的唯一可行的方法,可以将项目从一个目标移动到另一个目标,并仍然拥有可行的工作产品。

附注:我一个小时前也在搜索这个问题,但没有成功。在自己得到积极结果后,我想与社区分享这个结果...即使该帖子已经两年了并且已被标记为已回答。毕竟,它可能会帮助下一个像我一样正在寻找快速结果的人。


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