【问题标题】:How do I fix "No pubspec.yaml file found" in flutter?如何修复颤振中的“未找到 pubspec.yaml 文件”?
【发布时间】:2018-09-22 00:13:31
【问题描述】:

我正在使用带有 VS Code 的 Windows 10,尽管我也在 PowerShell 上对其进行了测试,并且都产生了相同的结果:

创建一个新的颤振程序后,在编辑任何东西之前,我尝试在手机上运行它,作为Tutorial Says,但我收到一条错误消息“找不到 pubspec.yaml 文件”。我认为问题一定是默认的新应用程序设置有问题,所以我使用了“flutter_gallery”示例。但是,这有完全相同的问题。我已经重新安装了颤振,自行安装了 dart 2,删除了 .pub-cache,但没有任何效果。我试着用谷歌搜索这个问题,但我找不到任何东西。

编辑:我正在从 pubspec.yaml 文件所在的 Flutter 项目的根目录运行命令,但仍然出现错误。完整的错误信息是:

Error: No pubspec.yaml file found.
This command should be run from the root of your Flutter project.
Do not run this command from the root of your git clone of Flutter.

这是从项目根目录运行dir的结果:

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
da---l       2018-04-11   3:45 PM                .idea
da---l       2018-04-11   3:45 PM                android
da---l       2018-04-11   3:45 PM                ios
da---l       2018-04-11   4:19 PM                lib
da---l       2018-04-11   3:45 PM                test
-a---l       2018-04-11   3:45 PM            120 .gitignore
-a---l       2018-04-11   3:45 PM            292 .metadata
-a---l       2018-04-11   3:45 PM           5425 .packages
-a---l       2018-04-11   3:45 PM            851 hello_world.iml
-a---l       2018-04-11   3:45 PM           1412 hello_world_android.iml
-a---l       2018-04-11   3:59 PM           8882 pubspec.lock
-a---l       2018-04-11   3:59 PM            358 pubspec.yaml
-a---l       2018-04-11   3:45 PM            160 README.md

更新:我仍然不知道是什么导致了问题,但是当我为 Beta 3 重新安装 Flutter 时,它终于成功了。

【问题讨论】:

  • 你能发布控制台输出吗?它可以帮助我们帮助您。
  • 你在哪个目录运行flutter run?项目的根目录,pubspec.yaml?
  • 我已经用控制台输出更新了这个问题。 @DanField 我从根目录运行。我已经用该信息更新了原始问题。谢谢!
  • “从根目录”是指从你的 Flutter 项目的根目录,而不是从你的系统/磁盘? flutter doctor -v 的输出是什么?您从哪里获得删除.pub-cache 应该有帮助的信息? (最近被提到很多)
  • 您能否在该文件夹中包含dir 命令的输出?

标签: dart flutter


【解决方案1】:

如果你是 linux 用户,复制这一行。 sudo chown -R 用户名主页/用户名/ 这应该允许您访问 home/username/ 中的每个文件

【讨论】:

    【解决方案2】:

    ERROR 很简单你在错误的目录,并试图在错误的目录中的 CMD 中运行你的命令。

    解决方案:

    1. 首先移动到 pubspec.yaml 所在的目录。 (就像我的情况一样,它是 C:\Users\A12\AndroidStudioProjects\work1 (A12 是我的用户名,work1 是项目 名称))
    2. 现在尝试运行您的命令它会正常工作。

    【讨论】:

      【解决方案3】:

      错误:找不到 pubspec.yaml 文件。 此命令应从 Flutter 项目的根目录运行。

      It Simple 表示你的终端当前不在你的 Flutter 项目中 目录路径错误,

      通过导航到flutter文件夹来解决它 更改目录 例如:cd 投资组合

      更改终端目录路径后

      C:\Android Studio Stuff\Flutter Project\portfolio> // 你的命令

      【讨论】:

        【解决方案4】:

        你可以在以下位置找到这个 pubspex.yaml \src\flutter\packages\flutter_tools 打开 CMD 将目录更改为上述位置,现在您可以运行 flutter upgrades get 和其他命令。 这对我来说工作得很好。希望这对你有用

        【讨论】:

          【解决方案5】:

          遇到类似的错误:

          The directory ../ does not contain a pubspec.
          

          这是因为我指的是一个没有 pubspec.yaml 文件的文件夹。

          解决方案:

          更改自:

            file_picker:
              path: ../
          

            file_picker:
              path: ./
          

          【讨论】:

            【解决方案6】:

            您似乎正在从 flutter sdk 安装文件夹运行命令。相反,您应该从您创建的项目中运行命令。

            匹配您从以下提到的步骤中完成的步骤:

            1. 克隆flutter或解压flutter sdk(已下载)并将flutter文件夹移动到C盘。

            2. 现在通过从任何文件夹运行命令(flutter --version)检查flutter是否安装正确。确保在环境变量中设置了颤振路径。

            3. 如果已安装,请移至您要创建项目的任何文件夹并键入此命令“flutter create project_name

            4. 现在移动到您最近创建的文件夹,然后从该文件夹运行“flutter run

            我想这肯定会对你有所帮助。

            【讨论】:

              【解决方案7】:

              你可以使用flutter clean命令然后试试

              flutter run 在你的终端中

              【讨论】:

                【解决方案8】:

                您可能正在从不同的目录运行颤振命令。转到项目目录并尝试从那里运行颤振命令。

                【讨论】:

                  【解决方案9】:

                  在终端中写入 cd 你的项目名称。 然后回车然后写flutter run

                  【讨论】:

                    【解决方案10】:

                    只需确保您在包含 .yaml 的主项目文件中运行终端

                    【讨论】:

                    • 请在评论部分发布您的此类答案,如果它包含代码则可以,所以请确保以后
                    【解决方案11】:
                    • 试试这个命令:flutter --version
                    • 确保您处于稳定频道。通过运行flutter channel,您将看到当前频道,若要更改它,请运行flutter channel stableflutter doctor 命令。

                    【讨论】:

                      【解决方案12】:

                      您需要执行以下命令:

                      flutter pub global activate webdev
                      

                      【讨论】:

                        【解决方案13】:

                        回答

                        只需在终端 VS 代码上更改您的目录文件夹项目。

                        例子

                        我将我的项目保存在目录 D:\Project\Flutter Project\MyFirstApp 和目录名称“first_app”上的 main.dart

                        只需在终端上这样输入:

                        cd first_app

                        现在我们在 D:\Project\Flutter Project\MyFirstApp\first_app

                        然后输入 flutter run

                        希望能回答你的问题。

                        enter image description here

                        【讨论】:

                          【解决方案14】:

                          我有同样的问题,然后我意识到默认情况下,我在我的子文件夹中运行 flutter clean。不是项目文件夹。一定要在命令终端中运行如下。

                          cd C:\Users*\Desktop*MyProject*my_project_flutter*

                          然后运行以下命令

                          1. 扑干净
                          2. 颤动运行

                          注意:cd 代表更改目录 我希望这会有所帮助!

                          【讨论】:

                          • flutter command is not working 'flutter' 未被识别为内部或外部命令、可运行程序或批处理文件。
                          【解决方案15】:

                          我的子文件夹“example”经常出现此错误:

                          <my project folder>\example: no pubspec.yaml found
                          
                          

                          不知道如何摆脱它。但是,该错误不会影响任何事情。

                          【讨论】:

                          • 您对此有解决方案吗?我在开发飞镖库时遇到了同样的问题! :(
                          【解决方案16】:

                          以最简单的方式解决此错误,请按照以下步骤操作:-

                          1. 转到终端

                          2. 然后找到本地标签

                          3. 然后单击“+”号并输入您的命令。这应该可以解决 你的错误

                          See this screenshot as a guide.

                          【讨论】:

                            【解决方案17】:

                            你应该 cd 到项目目录,你可能不在你打开项目的根目录。如果您在 Flutter 终端窗口顶部按下“+”按钮(新会话),它会自动更改为当前项目文件夹。

                            【讨论】:

                              【解决方案18】:

                              @James M,转到命令提示符并运行

                              flutter upgrade
                              

                              然后尝试使用命令创建一个新项目

                              flutter create new_project
                              

                              它可以正常工作。

                              【讨论】:

                                【解决方案19】:

                                就我而言,我在 Windows 10 中使用 VS 代码,当我通过 Flutter: New Project 创建一个新项目时 未能在项目位置下创建以下项目文件和文件夹

                                • 安卓

                                • ios

                                • pubspec.lock
                                • pubspec.yaml 和其他一些文件。

                                我尝试创建另一个项目,并成功创建了所有必要的文件。

                                听起来很愚蠢,但这正是发生在我身上的事情。

                                希望对某人有所帮助。

                                【讨论】:

                                  【解决方案20】:

                                  当您不在project 目录中尝试运行flutter build apk 命令(至少在我的情况下是这样)时,会引发此错误。通常,flutter 应用程序的项目目录路径(假设它在 F 盘,在一个名为 apps 的文件夹中,如下所示: F:\Apps\app_name

                                  我遇到了同样的问题,而我的罪魁祸首是这条路径:F:\Apps\app_name\android,毫无疑问,它不是项目目录。所以,我所要做的就是在终端中输入这个命令:cd ..,它会进入父目录。

                                  因此,在运行命令之前,请务必检查终端中显示的目录。

                                  【讨论】:

                                    【解决方案21】:

                                    第 1 步:将其添加到包的 pubspec.yaml 文件中: url_launcher: ^5.0.2

                                    第 2 步:当您回到 main.dart 文件时,您可以看到获取依赖项。当您单击该链接时,“flutter packages get”命令将运行。您可以获取 URL Launcher 包

                                    【讨论】:

                                      【解决方案22】:

                                      我看到此错误是因为 pubspec.yaml 内容无效,例如之前的空格

                                      name: my_app
                                      

                                      喜欢

                                          name: my_app`
                                      

                                      【讨论】:

                                        【解决方案23】:

                                        您应该在项目文件夹中运行它。例如:项目文件夹名为“first_app”,它位于Documents,所以首先进入Documents(cd Documents)然后进入你的项目文件夹(cd first_app),然后运行命令“flutter run”。

                                        MacBook-Pro-5:first_app 用户名$ flutter run

                                        【讨论】:

                                        • 从项目文件夹运行时显示“'flutter'不是内部或外部命令、可运行程序或批处理文件。”
                                        【解决方案24】:

                                        也许你应该检查一下你打开的项目目录是否正确。我遇到了这个问题,因为项目目录打开到项目的父目录。您必须确保该文件存在于您打开的项目目录中。

                                        【讨论】:

                                          【解决方案25】:

                                          看起来您正在从不同的目录(可能是父目录)运行 flutter run 命令。

                                          尝试从项目目录运行 flutter run 命令。

                                          【讨论】:

                                          • 看起来你是冠军,正是我做错的事情。非常感谢@Rohan。
                                          • 从项目目录运行后。显示错误“'flutter' is not known as an internal or external command”。
                                          • 我收到错误消息:CMD.EXE 以上述路径作为当前目录启动。不支持 UNC 路径。默认为 Windows 目录。
                                          • 我正在将我的代码移动到物理 c: 驱动器。
                                          • 谢谢,伙计...这个小问题浪费了我 60 分钟!!
                                          【解决方案26】:

                                          对我来说,罪魁祸首是 OneDrive。我必须重新安装 Windows 10,当我这样做时,它会自动为我设置 OneDrive。我想 - 太好了,少了一件事情......后来我意识到它已经将文件按需选项设置为 true。微软从未停止用他们认为是好主意的东西来吸引我的注意。为了验证这是否是问题所在,我将整个文件夹复制到了未同步到 OneDrive 的硬盘驱动器上的一个临时位置,并且运行良好。

                                          如果在无法访问所有文件的情况下尝试构建和运行的过程中发生了损坏,希望您最近从 github 提交了一个可以克隆的提交(在将项目放在 OneDrive 上之前)。这是假设您的问题与我的问题有相同的原因。

                                          【讨论】:

                                            猜你喜欢
                                            • 1970-01-01
                                            • 2021-01-06
                                            • 1970-01-01
                                            • 1970-01-01
                                            • 2019-06-02
                                            • 2020-02-01
                                            • 2022-11-04
                                            • 2021-06-10
                                            • 2021-07-04
                                            相关资源
                                            最近更新 更多