【问题标题】:Move Root Folder of Flutter Project移动 Flutter 项目的根文件夹
【发布时间】:2022-01-09 10:42:58
【问题描述】:

在 Mac 上使用 Android Studio 中的 Flutter(Arctic Fox 2021.3.1 补丁 4 和 XCode 13.1 和/或 13.2)工作时:

如果您使用 Finder 移动 Flutter 项目的根文件夹,然后在 Android Studio 中打开并运行它,原始文件夹位置仍会被重写(通常是多个子文件夹,内容为空,但并非总是如此)。

此外,移动的项目将不再从 XCode 中构建。

这意味着,如果您在创建项目时不知道项目的最终所需位置,您将无法在不发生奇怪事情的情况下移动它。

如何移动使用 Android Studio 创建的 Flutter 项目而不会产生奇怪的副作用?

更多关于如何复制的信息:

  1. 关闭所有 IDE

  2. 打开 Android Studio

  3. 使用 Android Studio,使用 Java 作为 Android 代码选择创建一个新的默认 FLUTTER 项目

  4. 使用 Android Studio,在 Android 模拟器上运行此项目

  5. 使用 Android Studio,在 IOS 模拟器上运行此项目

  6. 使用Android Studio,在XCode中打开项目(右键ios文件夹,选择Flutter\Open project in Xcode)

  7. 使用 XCode,在 IOS 模拟器上运行项目

[到目前为止一切正常]

  1. 关闭所有 IDE

  2. 使用 Finder,将项目文件夹移动到与其当前文件夹深度相同但父文件夹不同的新位置。意思是如果当前位置是:[root]/x/y/a/my_project_original,则目标是:[root]/x/y/b/my_project_copy

  3. 删除原始文件夹并记住它的位置

  4. 使用 Android Studio,从新位置打开项目

  5. 使用Android Studio,在XCode中打开项目(右键ios文件夹,选择Flutter\Open project in Xcode)

  6. 尝试在IOS模拟器上运行

[观察错误-“Command PhaseScriptExecution failed with a nonzero exit code”//“file not found exception”]

  1. 使用 Finder,检查以确认原始文件夹位置未被重写

  2. 使用 Android Studio,在 Android 模拟器上运行项目

[注意原来的文件夹被改写了!]

【问题讨论】:

  • 我用这个详细的问题重现了您的问题。我更新了我的答案,我错过了一个步骤:删除 .idea 文件和包含对您以前路径的引用的 build/ 文件夹。
  • 这似乎解决了 Android Studio 对原始文件夹的重新创建,但 IOS 构建错误仍然存​​在(不知何故 XCode 仍然从某处获取对旧路径的引用)。我仍然会奖励你赏金,因为这似乎是我们能得到的最好的。

标签: flutter android-studio


【解决方案1】:

以下是我在我的 mac 上移动项目位置的步骤:

  • 在 Android Studio 上关闭您的项目(文件 > 关闭项目)
  • 关闭 Android Studio
  • 将您的项目移至新位置
  • 打开 Android Studio
  • 从最近的项目中删除您的项目(在最近的项目列表中,单击右侧的设置图标,然后单击“从最近的项目中删除”)
  • 点击“打开”并在新位置选择您的项目。
  • 删除 .idea 文件和 build/ 文件夹

XCode 中的步骤应该相同(在主窗口中,从您最近的项目中删除旧位置,然后打开新位置)

【讨论】:

  • 您是指专门的 Flutter 项目还是仅指 Android 项目?上面的步骤我也是这样做的。
  • 因为我写过你可以在 Xcode 上遵循类似的步骤。您还可以从项目中删除任何 .idea 文件,并仔细检查您的项目是否没有存储任何绝对路径。我按照上面写的步骤,成功迁移了一个项目,没有任何副作用
【解决方案2】:

您可以将 Flutter 项目移动到任何地方,只要您不相对于彼此移动项目内的文件即可。

关于pod install的说明:如果您立即从Xcode 运行,则需要在将插件添加到pubspec.yaml 后,在ios 文件夹中运行pod install。如果您运行flutter run 或使用Android Studio 运行它,它将自动为您运行pod install。不过,你在移动项目后不必运行pod install,我刚刚测试过。

如果您使用 Finder 移动项目的根文件夹,请打开它 在Android Studio中运行它,原来的文件夹位置还是 重写(通常有多个空内容的子文件夹,但不是 总是)。

仅当您在移动文件时保持 Android Studio 处于打开状态时才会发生这种情况。您不应该在 Android Studio 中打开旧项目引用,您应该使用 File > Open... 打开项目。

此外,移动的项目将不再从 Xcode 中构建。

如果您提供错误,那将有助于我们为您提供帮助。

如何移动使用 Android Studio 创建的 Flutter 项目而不会产生奇怪的副作用?

我没有发现移动 Flutter 项目的任何副作用。如果 Android Studio 正在运行,请退出它,然后使用 File > Open... 打开它。或者,如果您在终端中,请运行(如果使用 Jetbrains 工具箱安装) open -a ~/Applications/JetBrains\ Toolbox/Android\ Studio.app/

【讨论】:

  • 感谢您的回答和努力。我发现“只有在您保持 Android Studio 处于打开状态时才会发生这种情况”对我来说是不正确的,并且我已经验证了原始问题。我意识到我的问题需要更多信息,因此我添加了重现步骤,并更新了我的 Android Studio 版本以反映补丁 4 中仍然存在问题。
  • 也许在你移动之后,你可以在IDE没有运行的时候删除根项目目录下的.idea文件夹。
猜你喜欢
  • 2018-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多