【问题标题】:等待另一个flutter命令释放启动锁
【发布时间】:2019-01-11 17:44:40
【问题描述】:

当我运行我的颤振应用程序时,它会显示

等待另一个flutter命令释放启动锁

此消息,不再继续。

【问题讨论】:

  • 什么操作系统?试试killall -9 dart。你用的是什么 Flutter 版本?如果您使用的是flutter pub pub run build_runner watch,请参阅github.com/flutter/flutter/issues/14703#issuecomment-369404176
  • 感谢您的重播,但我不知道我的问题是如何自动解决的。真的很奇怪。
  • 就我而言,我刚刚重新启动了我的笔记本电脑。它解决了这个问题。
  • 我刚刚重新启动了我的 IDE,它对我有用
  • 在我的例子中,我打开了两个 diff 项目,并在这两个项目上运行了两个命令 1)flutter build apk 2)flutter run。它停止执行另一个项目并等待第一个项目的完成,因为第一个项目完成了执行,第二个项目开始执行。

标签: flutter command lockfile flutter-compiler


【解决方案1】:

当您在编辑器中打开 Flutter 项目时也会发生这种情况。关闭编辑器并重新运行命令

【讨论】:

    【解决方案2】:

    删除此文件:

    <YOUR FLUTTER FOLDER>/bin/cache/lockfile
    

    这会释放占用的锁,让您能够运行其他命令。

    【讨论】:

    • 但是锁文件被锁定了。它正在使用中,我似乎无法删除它。好的,它可以工作,但是您需要关闭 Android Studio 并等待大约一分钟......然后您可以删除该文件。
    • 如果实际上没有应用程序正在使用颤振,即 android studio、vscode、cmd 等,这个答案很好
    【解决方案3】:

    就我而言,终端中的以下命令有所帮助(如 Günter 所建议):

    killall -9 dart
    

    在 Windows 上(由 upupming 建议):

    taskkill /F /IM dart.exe
    

    【讨论】:

    • 对于 Windows 用户:taskkill /F /IM dart.exe
    • 那么,如何继续,我刚接触flutter,我刚刚克隆了flutter git并设置了env var?
    • 它对我有用,但我不明白这个问题的原因。
    • 请解释/F和/IM
    • 对于 windows 确保您在命令提示符下运行它,而不是在 vscode 的 bash 终端中运行
    【解决方案4】:

    退出 IDE,然后从启动管理器停止所有 dart 相关文件(如果有的话)。
    那就去
    "FLUTTER DIRECTORY"/bin/cache/lockfile
    并删除此锁定文件

    【讨论】:

      【解决方案5】:

      我使用带有 Visual Studio Code 的 Mac,这是有效的:

      关闭您的电脑并重新打开。不要使用重启功能。我重新启动了2次,它没有工作。只有关机有效。

      PS:我尝试了以下方法:

      1. 删除锁定文件;
      2. 运行killall -9 dart;
      3. 重启我的电脑。

      但他们都没有工作。

      【讨论】:

        【解决方案6】:

        我尝试了所有以前的建议,但没有任何好处。 最后当我将我的电脑连接到互联网并等待颤振释放然后 5 分钟解决

        【讨论】:

          【解决方案7】:

          如果您使用的是 Windows,您可以打开任务管理器并在“进程”选项卡下搜索名为“dart”的进程。结束所有这些任务。

          【讨论】:

            【解决方案8】:

            在 Windows 中:

            按:Ctrl + Alt + 删除

            • 在任务管理器中找到您的编辑器,例如 VS Studio 或 Android Studio
            • 在其中找到“dart”并结束该任务
            • 然后关闭你的编辑器
            • 再次打开编辑器
            • 让编辑器完成所有事情,然后运行您的查询即可

            【讨论】:

            • 对我来说没有飞镖任务。
            【解决方案9】:

            我也遇到了同样的问题,我遵循了最好和最简单的方法

            环境:Windows

            IDE:Android Studio

            工具>flutter(最后一个选项)> 选择flutter clean

            flutter clean 完成后,一切就绪,一切顺利。

            【讨论】:

              【解决方案10】:

              只需在 android studio 终端上输入,即可再次使用!

              颤动运行

              :)

              【讨论】:

                【解决方案11】:

                在 Android Studio 中,它适合我

                如果您的应用仍在手机上运行,​​请停止它 或断开您的测试设备。

                然后尝试再次安装包。

                【讨论】:

                  【解决方案12】:

                  试试这个 对于窗口

                  TASKKILL //F //IM dart.exe

                  成功了!

                  【讨论】:

                    【解决方案13】:

                    有一些动作要做:

                    1- 在 pubspec.yaml 中按“packages get”或在终端输入“flutter packages get”并等待几秒钟。

                    如果这不起作用:

                    2-type flutter clean 然后做第(1)步

                    如果这也不起作用:

                    3-type killtask /f /im dart.exe

                    如果这也不起作用:

                    4- 关闭 android studio 然后重启你的电脑。

                    【讨论】:

                      【解决方案14】:

                      首先重启你的IDE,然后从终端在项目文件夹中运行以下命令

                      killall -9 dart
                      

                      它对我有用。希望它能帮助一些面临同样问题的人。

                      【讨论】:

                      • 使用-9 可以防止进程执行任何清理工作。当您已经尝试过-2-15-1 并且它们都不起作用时,您基本上应该只使用-9
                      【解决方案15】:

                      1。停止所有正在运行的 dart 实例

                      如果您使用的是 Android Studio,请保存并关闭它。并打开您的终端以终止正在运行的 dart 实例。

                      这些命令将杀死所有 dart 实例,包括由编辑器创建的用于代码分析和调试实例的实例。所以在执行之前要小心

                      Linux:

                      killall -9 dart
                      

                      窗户:

                      taskkill /F /IM dart.exe
                      

                      2。删除lockfile

                      你可以在flutter安装目录中找到lockfile

                      <flutter folder>/bin/cache/lockfile
                      

                      【讨论】:

                        【解决方案16】:
                        1. 删除 pubspec.lock 文件
                        2. 从终端运行“flutter pub get编辑器快捷方式(“get packagesAndroidStudio或@ 987654321@ Visual Studio)在 pubspec.yaml 文件中。
                        3. 等待下载。
                        4. 如果不起作用,请重新启动您的编辑器,然后重复第 2 步。

                        【讨论】:

                          【解决方案17】:

                          大多数人都在说killall -9 dart,但没有人提到对我有用的pkill -f dart

                          两者的区别解释here

                          【讨论】:

                            【解决方案18】:

                            当任何其他颤振命令在后台运行时会发生这种情况。为了解决这个问题,你可以为 mac 运行

                            killall -9 dart

                            并为 windows 打开任务管理器。然后在进程选项卡中,搜索 dart 进程并杀死所有进程。 希望对您有所帮助。

                            【讨论】:

                            • kill -9 基本上不应该使用。只需killall,然后如果失败,请尝试其他一些信号。如果没有其他办法,9 号应该是你最后的选择。
                            • 此外,这重复了一个较旧的答案,它推荐了相同的反模式。
                            【解决方案19】:

                            对于新手

                            最简单的解决方案是重启计算机或简单地从当前用户注销并重新登录。

                            【讨论】:

                            • 请说服我退出&登录可以解决问题。 (并且,如果依赖于平台或仅尝试过一个平台,请提及平台。)
                            • 使用 Mac OS Mojave
                            • 我遇到了类似的问题,上面的方法解决了我的问题
                            【解决方案20】:

                            之前的大多数解决方案都做了,但它对我不起作用,所以我只是让笔记本电脑连接到互联网并打开 VS-code 然后我关闭了一段时间,然后重新打开它就可以了

                            【讨论】:

                              【解决方案21】:
                              1. 关闭 Android Studio。

                              2. 打开flutter安装目录/bin/cache。

                              3. 删除锁定文件。

                              4. 此时可以在命令行执行flutter相关命令完美解决问题。

                              【讨论】:

                                【解决方案22】:

                                这似乎是网络问题。我关闭了 wi-fi 并通过手机将笔记本电脑连接到 4G 连接,它可以在 5.9 秒内工作

                                【讨论】:

                                  【解决方案23】:

                                  我刚刚让终端机打开了一分钟。 然后它又开始正常工作了。

                                  【讨论】:

                                    【解决方案24】:

                                    在 VS 代码中运行

                                    flutter clean
                                    

                                    在终端中。这解决了我的问题。

                                    【讨论】:

                                      【解决方案25】:

                                      您可以尝试杀死所有flutter 进程。

                                      TL;DR - 转到4)

                                      1) 进程列表:

                                      ps aux
                                      

                                      2) 搜索名称包含flutter:

                                      ps aux | grep flutter
                                      

                                      输出可以是那里:

                                      stackoverflow     16697   1.5  0.0  4288316    704   ??  S    10:02PM   0:15.80 bash /flutter_path/flutter/bin/flutter --no-color build apk
                                      stackoverflow      2800   1.5  0.0  4288316    704   ??  S     9:59PM   0:18.49 bash /flutter_path/flutter/bin/flutter --no-color pub get
                                      stackoverflow      1215   1.5  0.0  4280124    700   ??  S     9:58PM   0:18.89 bash /flutter_path/flutter/bin/flutter --no-color config --machine
                                      stackoverflow      8449   1.5  0.0  4296508    716   ??  S    10:00PM   0:17.20 bash /flutter_path/flutter/bin/flutter --no-color pub get
                                      stackoverflow      1326   1.4  0.0  4288316    708   ??  S     9:58PM   0:18.97 bash /flutter_path/flutter/bin/flutter daemon
                                      stackoverflow     16687   0.0  0.0  4279100    820   ??  S    10:02PM   0:00.01 bash /flutter_path/flutter/bin/flutter --no-color build apk
                                      stackoverflow      8431   0.0  0.0  4288316    804   ??  S    10:00PM   0:00.02 bash /flutter_path/flutter/bin/flutter --no-color pub get
                                      stackoverflow      2784   0.0  0.0  4288316    704   ??  S     9:59PM   0:00.01 bash /flutter_path/flutter/bin/flutter --no-color pub get
                                      stackoverflow      1305   0.0  0.0  4280124    712   ??  S     9:58PM   0:00.01 bash /flutter_path/flutter/bin/flutter daemon
                                      stackoverflow      1205   0.0  0.0  4279100    788   ??  S     9:58PM   0:00.01 bash /flutter_path/flutter/bin/flutter --no-color config --machine
                                      stackoverflow     11416   0.0  0.0  4268176    536 s000  R+   10:18PM   0:00.00 grep --color flutter
                                      

                                      3) 获取进程 ID

                                      我们需要来自 second 列的内容(来自上面的输出):

                                      ps aux | grep flutter | awk '{print $2}'
                                      

                                      4 a) “自动”杀死:

                                      列出、搜索并杀死所有你可以使用的人

                                      kill $(ps aux | grep flutter | grep -v grep  | awk '{print $2}')
                                      

                                      (您也可以使用sudo 运行它)

                                      ps aux | grep flutter | grep -v grep | awk '{print $2}' | xargs kill -15
                                      

                                      4 b) 手动杀死

                                      您可以使用以下方法一个一个地终止进程:

                                      sudo kill -15 <process_ID>
                                      

                                      例如使用 id 13245 杀死进程:

                                      sudo kill -15 13245
                                      

                                      如果-15不起作用,您可以尝试-2-1

                                      最后一个选项是-9,不应该使用它,因为它会阻止进程进行任何清理工作。

                                      【讨论】:

                                      • 这在 macOS Big Sur 11.4 上对我有用。
                                      【解决方案26】:

                                      您可以删除颤振并“重新安装”,因此最快的方法是:

                                      1) 检查您在哪里拥有flutter(作为可执行文件)

                                      要检查它,你可以运行:

                                      which flutter
                                      

                                      你可以期待这样的输出:

                                      /your_user/your_path/flutter/bin/flutter
                                      

                                      2) 进入该目录

                                      上面的路径是直接去flutter的,但是我们想去目录,所以路径中的“前一个”:

                                      cd /your_user/your_path/flutter/bin
                                      

                                      3) 检查是git 存储库

                                      应该是,但值得检查。

                                      运行 git 命令之一,例如

                                      git status
                                      

                                      git branch
                                      

                                      当它是 git 存储库时,您将收到一些关于它的信息或正确的分支列表。

                                      4) 删除所有文件

                                      rm -R *
                                      

                                      5) “还原”删除以仅包含必要的文件:

                                      git co -- .
                                      

                                      6) 瞧!

                                      你可以只运行 flutter version 并且命令应该可以工作(Flutter 会获取一些必要的数据)。

                                      【讨论】:

                                        【解决方案27】:

                                        所有这些答案都没有帮助我。

                                        唯一的解决方案是删除整个颤振的东西(并从 git 重新安装颤振):

                                        <flutter directory>
                                        <user>/.flutter_tool_state
                                        <user>/.dart
                                        <user>/.pub-cache
                                        <user>/.dartServer
                                        <user>/.flutter
                                        

                                        【讨论】:

                                          【解决方案28】:

                                          我有同样的问题,我尝试了上述所有解决方案,但没有一个对我有用。然后我在flutter目录下搜索关键词,发现如下代码。于是我尝试删除bin/cache/.upgrade_lock,终于成功了。

                                          【讨论】:

                                            【解决方案29】:

                                            我已经尝试了以下所有步骤,但都没有成功。

                                            1. 删除锁定文件;
                                            2. 运行 killall -9 dart;
                                            3. 重启我的电脑。

                                            下面是对我有用的最终命令

                                            rm -rf <flutter_dir>bin/cache/.upgrade_lock
                                            

                                            【讨论】:

                                              【解决方案30】:

                                              对我来说,我的 Mac 设备上问题的根本原因是它没有预料到的羊群二进制版本。将它从路径中移除就可以了。可能是 BSD 与 GNU 语法问题。

                                              【讨论】:

                                              • 我也有同样的原因。 brew upgrade flock - 帮了我
                                              猜你喜欢
                                              • 2019-07-12
                                              • 2021-01-26
                                              • 2019-02-22
                                              • 2021-06-18
                                              • 1970-01-01
                                              • 2021-04-12
                                              • 1970-01-01
                                              • 1970-01-01
                                              • 1970-01-01
                                              相关资源
                                              最近更新 更多