【问题标题】:VSCode doesn't recognise Dart SDK (running on WSL)VSCode 无法识别 Dart SDK(在 WSL 上运行)
【发布时间】:2021-12-21 17:38:49
【问题描述】:

我在我的 Windows 10 机器上的 C/Users/OEM/Documents/flutter 安装了 Windows 版本的 Flutter SDK,但是我通过 WSL1 使用 ohmyzsh 作为 shell 并使用 VS Code 作为 IDE 来完成我的所有开发。我解决了由于 windows 样式语法导致的通过 zsh 运行颤振命令的错误:

(例如 /mnt/c/Users/OEM/Documents/flutter/bin/flutter:第 5 行:$'\r': 找不到命令)

通过在我的主目录中创建一个 shell 脚本“flutter”来强制 flutter 命令通过 windows 运行:

    #!/bin/bash
cmd.exe /c flutter.bat $@

现在这是我在 zsh 中从颤振医生 -v 中的输出:

[✓] Flutter (Channel stable, 2.5.3, on Microsoft Windows [Version 10.0.19042.1288],语言环境 en-US) • Flutter 2.5.3 版,位于 C:\Users\OEM\Documents\flutter • 上游仓库https://github.com/flutter/flutter.git • 框架修订 18116933e7(3 周前),2021-10-15 10:46:35 -0700 • 引擎修订版 d3ea636dc5 • Dart 版本 2.14.4

[✓] Android 工具链 - 为 Android 设备开发(Android SDK 版本 31.0.0) • C:\Users\OEM\AppData\Local\Android\sdk 中的 Android SDK • 平台 android-31,构建工具 31.0.0 • Java 二进制文件位于:C:\Program Files\Android\Android Studio\jre\bin\java • Java 版 OpenJDK 运行时环境(内部版本 11.0.10+0-b96-7249189) • 接受所有 Android 许可证。

[✓] Chrome - 为网络开发 • C:\Program Files\Google\Chrome\Application\chrome.exe 中的 Chrome

[✓] Android Studio(版本 2020.3) • C:\Program Files\Android\Android Studio 中的 Android Studio • Flutter 插件可以从以下位置安装: ??? https://plugins.jetbrains.com/plugin/9212-flutter • Dart 插件可以从以下位置安装: ??? https://plugins.jetbrains.com/plugin/6351-dart • Java 版 OpenJDK 运行时环境(内部版本 11.0.10+0-b96-7249189)

[✓] VS 代码(版本 1.62.0) • C:\Users\OEM\AppData\Local\Programs\Microsoft VS 代码中的 VS 代码 • Flutter 扩展可以从以下位置安装: ??? https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] 已连接设备(2 个可用) • Chrome(网络) • chrome • web-javascript • Google Chrome 95.0.4638.69 • Edge(网络) • edge • web-javascript • Microsoft Edge 95.0.1020.30

一切正常。但是,VS Code 在打开项目时无法初始化 Flutter,因为它找不到 Dart SDK。以下是错误日志的相关部分:

[上午 11:55:40] [常规] [信息] 发现于:[上午 11:55:40] [常规] [信息] /home/jack-r-buckley [上午 11:55:40] [一般] [信息]
/mnt/c/Users/OEM/Documents/flutter/bin [上午 11:55:40] [常规] [信息] 要后过滤的候选路径:[11:55:40 AM] [General] [Info]
/home [上午 11:55:40] [常规] [信息]
/mnt/c/Users/OEM/Documents/flutter [上午 11:55:40] [常规] [信息]
返回 dart 未定义的 SDK 路径 [上午 11:55:40] [常规] [信息] 颤振未初始化,运行'颤振医生'强制... [上午 11:55:42] [常规] [信息] (PROC 1145) 记录过程的数据... [上午 11:55:43] [一般] [信息] (PROC 1145) /mnt/c/Users/OEM/Documents/flutter/bin/flutter:第 5 行:$'\r':命令 未找到 /mnt/c/Users/OEM/Documents/flutter/bin/flutter:第 13 行: $'\r': 找不到命令 /mnt/c/Users/OEM/Documents/flutter/bin/flutter:第 14 行:设置:-: 无效的选项集:用法:设置 [-abefhkmnptuvxBCHP] [-o 选项名称] [--] [arg ...] /mnt/c/Users/OEM/Documents/flutter/bin/flutter: 行 15: $'\r': 找不到命令 /mnt/c/Users/OEM/Documents/flutter/bin/flutter:第 17 行:未设置: `CDPATH':不是一个有效的身份... [上午 11 点 55 分 43 秒] [常规] [信息] (PROC 1145) 退出 (2, null)

我对开发还很陌生,所以如果我的方法在这里不合适,请原谅我。有没有办法让 VS Code 在这个设置中识别我的 Dart SDK?还是我最好只使用powershell并完全摆脱WSL?感谢您的宝贵时间。

【问题讨论】:

    标签: flutter dart visual-studio-code zsh windows-subsystem-for-linux


    【解决方案1】:

    虽然我不确定这不能正常工作,但它肯定不是我(Dart 扩展的作者)所期望的那样使用它。在 WSL 中运行时,Dart 扩展在 Linux 领域运行,并假设 Flutter 进程也可能不成立(例如,它可能捕获 PID 并期望能够向它们发送信号)。

    如果您想在 WSL 中运行,我建议您在 WSL 中设置 Flutter SDK(它将下载 Dart SDK 的 Linux 版本)。但是,您可能会发现某些功能以这种方式无法正常工作(例如 WSL 实例可能看不到 Windows 中连接的设备)。

    如果您没有真正需要使用 WSL,我建议您跳过它 - 这只是您可能不需要的额外复杂性。如果您确实需要它,我对用例很感兴趣(了解扩展程序的用户在做什么以避免这样的混淆总是很有用的)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-18
      • 1970-01-01
      • 2022-11-22
      • 2022-06-30
      • 1970-01-01
      • 1970-01-01
      • 2021-09-11
      相关资源
      最近更新 更多