在Android Studio中使用Flutter在Mac上工作时(Arctic Fox 2021.3.1 Patch 4和XCode 13.1和/或13.2(:
如果你使用Finder移动Flutter项目的根文件夹,然后在Android Studio中打开它并运行它,原始文件夹位置仍然会被重写(通常情况下,多个子文件夹的内容为空,但并不总是如此(。
此外,移动的项目将不再从XCode中生成。
这意味着,如果你在创建项目时不知道项目的最终位置,你将无法在不发生奇怪事情的情况下移动它。
你如何才能移动一个用安卓工作室创建的Flutter项目而不产生奇怪的副作用?
关于如何复制的更多信息:
-
关闭所有IDE
-
打开Android Studio
-
使用Android Studio,创建一个新的默认FLUTTER项目,使用Java作为Android代码选择
-
使用Android Studio,在Android Emulator 上运行此项目
-
使用Android Studio,在IOS模拟器上运行此项目
-
使用Android Studio,在XCode中打开项目(右键单击ios文件夹,然后选择Flutter\open project in XCode(
-
使用XCode,在IOS模拟器上运行项目
[到目前为止一切都应该正常]
-
关闭所有IDE
-
使用Finder,将项目文件夹移动到与其当前文件夹深度相同但具有不同父文件夹的新位置。这意味着,如果当前位置为:[root]/x/y/a/my_project_original,则目标位置为:[root]/x/y/b/my_project_copy
-
删除原始文件夹并记住所在的位置
-
使用Android Studio,从新位置打开项目
-
使用Android Studio,在XCode中打开项目(右键单击ios文件夹,然后选择Flutter\open project in XCode(
-
尝试在IOS模拟器上运行
[观察错误-"Command PhaseScriptExecution失败,非零退出代码为"//"file not found exception"]
-
使用Finder,检查以验证原始文件夹位置是否已重写
-
使用Android Studio,在Android模拟器上运行项目
[注意原始文件夹已被重写!]
以下是我在mac上移动项目位置的步骤:
- 关闭Android Studio上的项目(文件>关闭项目(
- 关闭Android Studio
- 将项目移动到新位置
- 打开Android Studio
- 从最近的项目中删除您的项目(在"最近的项目"列表中,单击右侧的"设置"图标,然后"从最近的工程中删除"(
- 点击";打开";并在新位置选择您的项目
- 删除.inidea文件和build/文件夹
XCode中的步骤应该相同(在主窗口中,从最近的项目中删除旧位置,然后打开新位置(
您可以将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
>CCD_ 11。或者,如果您在终端中,运行(如果使用Jetbrains工具箱安装(open -a ~/Applications/JetBrains Toolbox/Android Studio.app/