颤振医生不适用于命令提示符或 PowerShell 窗口?

Posted

技术标签:

【中文标题】颤振医生不适用于命令提示符或 PowerShell 窗口?【英文标题】:flutter doctor doesn't work on neither Command Prompt or PowerShell window? 【发布时间】:2018-09-11 14:07:22 【问题描述】:

flutter doctor 在命令提示符或 PowerShell 窗口中都不起作用? 我一直在尝试在 Windows 上安装颤振。我已经克隆了教程中提到的 Flutter SDK。我已将 git 和颤振添加到我的路径中。但是当我尝试运行flutter doctor 时,命令提示符回复如下:

'where' is not recognized as an internal or external command operable program or batch file.
Error: Unable to find git in your path

检查 cmd 图像你会发现问题

【问题讨论】:

你的环境变量设置对了吗? 看看这个video 请截图 是的,我已经正确设置了环境变量,但它不起作用,我看了视频,我只是按照正确的步骤操作,但它不起作用 你给环境变量设置的路径是什么? 【参考方案1】:

我在安装flutter时也遇到过。

将这些添加到系统变量(不是用户变量),除了颤振本身:

C:\Flutter\flutter_windows_2.2.1-stable\flutter\bin

确保您拥有 System32、Git 和 PowerShell

C:\Program Files\Git\cmd
C:\Program Files\Git\bin
C:\Windows\System32
C:\Windows\System32\WindowsPowerShell\v1.0

Flutter Doctor 也会抱怨 Java,因此请确保您也安装了 java sdk 并将其添加到路径:

C:\Program Files\Java\jdk-12.0.2\bin

我这边的问题是 path 中缺少 PowerShell。

【讨论】:

只是不要忘记在系统变量中添加路径后重新启动CMD【参考方案2】:

我尝试为“System32”和“PowerShell”设置绝对路径,但没有成功。最后设置路径后解决了。

【讨论】:

【参考方案3】:

这对我也不起作用。 但是当我安装这里写的东西时,我重新启动了我的电脑,一切都对我有用。

【讨论】:

【参考方案4】:

删除环境变量中每条路径前后的空格

// incorrect value
C:\src\flutter\bin; C:\Program Files\Git\git-cmd.exe; C:\Windows\System32\

// correct value
C:\src\flutter\bin;C:\Program Files\Git\git-cmd.exe;C:\Windows\System32\

【讨论】:

【参考方案5】:

只需检查所有环境变量... 在 Flutter 的情况下,这些是否存在于路径变量中

C:\Windows\System32;
C:\Program Files\Git\cmd;
C:\Program Files\Java\jdk1.8.0_221\bin;
D:\flutter_windows_v1.7.8+hotfix.4-stable\flutter\bin\

System32 文件对 git 很重要。请检查它是否存在。

【讨论】:

去掉每条路径前后的空格!【参考方案6】:

我真的看到这里一团糟;但是解决方案非常简单。甚至不需要重启。

就我而言,我将颤振文件夹保存在我帐户的源文件夹中,并将此值附加到 PATH 条目中;

%USERPROFILE%\source\flutter\bin

注意:我只有一个值,它用于 Microsoft WindowsApps (;

说明

现在,我们都知道我们需要在 PATH 条目中附加“full path to flutter\bin”,或者如果它不存在则创建一个新的。但是,Windows 用户有不同的配置文件文件夹,因此我们使用 完整路径。因此,为了解决这个常见问题,无论用户配置文件文件夹的典型路径是什么,我们都可以使用 %USERPROFILE% 值,它是一个常量特殊项目 ID 列表 (CSIDL)。见Recognized Environment Variables

恒定的特殊项目 ID 列表 (CSIDL) 值提供了一种识别应用程序经常使用但在任何给定计算机上的名称或位置可能不同的文件夹的方法。

所以如果你像我一样将 Flutter 文件夹保存在用户的配置文件夹中,只需复制 %USERPROFILE% 并将其粘贴到 flutter 的 bin 文件夹目录之前 PATH 条目,然后使用 将所有附加到现有值;作为分隔符或类似地单击面板右侧的新建按钮并粘贴。

【讨论】:

【参考方案7】:

要在 Windows 系统的命令提示符下运行 Flutter,需要三件事

    downloaded flutter sdk 的 bin 文件夹路径 我已经下载了 sdk 并将其保存在我的文档中,所以对我来说路径是

C:\Users\mahesh_2\Documents\flutter_windows_v0.11.9-beta\flutter\bin

    where.exe 位于C:\Windows\System32

注意:如果在步骤 3 中找不到路径,则需要从 here 下载 git

    git-cmd.exe 位于C:\Program Files\Git\git-cmd.exe

所以只需将这三个路径添加到您的环境变量中 转到系统环境变量 变量名Path

价值为

C:\Windows\System32;C:\Program Files\Git\git-cmd.exe;C:\Users\mahesh_2\Documents\flutter_windows_v0.11.9-beta\flutter\bin

重新启动命令提示符并尝试运行颤振和瞧!你应该得到这样的东西

【讨论】:

第 3 步在我的情况下不是必需的。但是,我还需要在系统变量路径中添加 C:\Windows\System32\WindowsPowerShell\v1.0。【参考方案8】:

如果它发生在你身上就像发生在我身上一样,你可能去通过编辑Path 系统变量将flutter\bin 添加到环境变量中。

然后您继续按下Browse 按钮,并选择了您想要的路径。

您没想到的部分是它实际上覆盖了%SYSTEMROOT%\System32 条目,这是列表中的第一个路径,并且在您打开该编辑窗口时默认突出显示的路径。

如果您遇到这种情况,只需按下New 按钮,然后将%SYSTEMROOT%\System32 添加回Path 变量,这将使where.exe 再次可用。

这里需要注意的是,Path 变量编辑窗口中的Browse 按钮,将用新选择的路径覆盖突出显示的路径,因此确保没有突出显示现有路径是很重要的使用它。

【讨论】:

【参考方案9】:

有两个错误要避免:

    将其添加到 System 变量路径,而不是 用户 变量路径

    在 Windows 10 界面中,不要将 新变量 误认为将路径添加到路径变量的解决方案。在大多数情况下,应该已经有一个名为 Path 的变量(否则创建一个),其中包含所有路径,并且您必须将到 flutter/bin 的路径附加到此路径变量。

【讨论】:

【参考方案10】:

我刚刚删除了现有路径并添加了一条新路径以使其正常工作。

    删除现有路径 创建一个名为 Path 的新用户变量,并将 flutter\bin 的完整路径作为其值

    设置三个变量路径:

    C:\Windows\System32;C:\Program Files\Git\git-cmd.exe;D:\flutter\flutter\bin

D:\flutter\flutter\bin 应替换为您的驱动器路径(您提取 Flutter zip 文件的位置

关闭并重新打开控制台以使这些更改生效。

【讨论】:

【参考方案11】:

我有同样的问题。 (我上周已经添加了环境变量 n 工作正常) 问题是我的杀毒软件删除了flutter\bin中的flutter.bat。

我在重新下载flutter.bat或重新下载整个flutter后解决了这个问题。

【讨论】:

【参考方案12】:

只需加上我的两分钱。 我遇到了同样的问题,在尝试了我阅读的所有内容之后,我最终只是在命令行中使用了“echo %path%”,并看到颤动的路径包含非法字符。 在 PATH 中删除颤振条目并再次手动输入而不是复制它之后,它终于可以工作了。 以防万一它可以帮助某人。

【讨论】:

【参考方案13】:

如果您像我一样向用户环境添加 Flutter 不起作用,您实际上可以通过将 flutter 替换为您的 flutter.bat 文件的路径来运行命令,如下所示: C:\fluttersdk\flutter\bin\flutter.bat doctor 如果您正在运行flutter build apk,它的工作方式相同,它最终会像这样: C:\fluttersdk\flutter\bin\flutter.bat build apk 作为命令。

【讨论】:

【参考方案14】:

解决上述问题

设置三个变量路径

第一个Flutter路径(主要在c盘)

C:\src\flutter\bin

第二个 GIT 路径

C:\Program Files\Git\cmd

第三个 System32 路径

C:\Windows\System32

如果您使用 Window,请使用 Window 命令提示, 重启命令提示符就可以正常工作了。

运行命令

颤振升级

【讨论】:

【参考方案15】:

我也遇到了同样的问题,我在 Window 默认命令提示符下运行 flutter 命令。虽然我已经在用户环境变量中添加了C:\src\flutter\bin 路径。对我有用的解决方案是将C:\Windows\System32\ 添加到用户环境变量 中的Path 变量中。完成此操作后重新启动系统并在默认命令提示符下运行flutter 命令。

希望对你有所帮助。

【讨论】:

【参考方案16】:

如果你在android Studio工作,你会发现它在

Tools -> Flutter -> Flutter Doctor

在 cmd 上运行 Flutter Doctor 无法识别为内部或外部命令。

但在 Android Studio Terminal 上,它运行得很好。


P.S - 如果您使用 Android Studio 作为您的 IDE,请不要忘记安装 Flutter 插件和 Dart 插件。

【讨论】:

这不是这个问题的正确答案。【参考方案17】:

遇到同样的问题并通过确保在“编辑系统环境变量”时在系统变量框中添加了flutter PATH来解决它。编辑上框调用“用户变量”并没有解决我的问题。

【讨论】:

我支持这个。我尝试了一切:将 System32 & Git 添加到 PATH 但在用户变量级别,重新启动,重新安装 Git & Flutter & Graddle。除了将 Flutter 添加到 Systerm 变量之外,什么都没有。【参考方案18】:

首先where.exe命令位于C:windows\System32里面,所以转到

    编辑系统环境设置 点击环境并编辑, 然后在“路径”内添加 C:windows\System32,用 ; 分隔 最后添加 C:\Program Files\Git\git-cmd.exe 点击确定

现在再次重新启动您的cmd

【讨论】:

【参考方案19】:

我遇到了完全相同的问题,按照here 给出的解决方案,我能够解决这个问题。

问题是我的 PATH 变量中缺少 C:\Windows\System32\。因此,要解决它,只需按照以下步骤操作:

    在搜索中,搜索然后选择:系统(控制面板)

    点击高级系统设置链接。

    单击环境变量。在系统变量部分中,找到PATH 环境变量并选择它。点击编辑

    在“编辑系统变量”窗口中,添加C:\Windows\System32,以; 分隔。点击确定。单击“确定”关闭所有剩余的窗口。

    重新启动您的计算机。

现在运行flutter doctor

【讨论】:

【参考方案20】:

1)确保环境变量设置正确,

转到“控制面板 > 用户帐户 > 用户帐户 > 更改我的 环境变量”

在“用户变量”下检查是否有一个名为“路径”的条目:

如果条目确实存在,则将完整路径附加到 flutter\bin 使用 ; 作为现有值的分隔符。

如果该条目不存在,则创建一个名为 Path 的新用户变量,并将 flutter\bin 的完整路径作为其值。

2) 重新启动您的计算机

完成上述两个步骤后,运行flutter doctor

注意:在命令提示符或 PowerShell 中运行此命令 窗户。 目前,Flutter 不支持第三方 shell,如 Git Bash。(来源:Flutter 文档)

【讨论】:

你给环境变量设置的路径是什么? 这个真的很有帮助。我将默认的 Flutter SDK 路径(环境变量 -PATH)从“F:\Microsoft VS Code\bin”更改为我的 SDK 路径——“C:\flutter\bin”。它有效。 注意帮助了我。谢谢 重启很重要。更新路径后 非常感谢这个人真的被困了很长时间。

以上是关于颤振医生不适用于命令提示符或 PowerShell 窗口?的主要内容,如果未能解决你的问题,请参考以下文章

Active Directory 命令在 PowerShell 下工作,但不适用于命令提示符

在颤振医生中找不到Android SDK文件adb(命令提示符)

运行颤振医生时无法接受安卓许可证

命令不适用于Powershell中的变量[重复]

当我使用颤振医生命令检查状态时,它说没有安装颤振和飞镖的插件

Powershell Try/Catch 或 If/Else 不适用于我的脚本