我在我的Windows 10机器上的C/User/OEM/Documents/ flutter上安装了flutter的Windows版本,但是使用ohmyzsh作为shell和VS代码作为IDE,通过WSL1进行所有的开发。我解决了通过zsh运行颤振命令的错误,这是由于windows样式的语法导致的:
/mnt/c/Users/OEM/Documents/flutter/bin/flutter:(例如,
第5行:$'\r':命令未找到)
通过在我的主目录中创建一个shell脚本' flutter‘,该脚本将强制flutter命令在windows中运行:
#!/bin/bash
cmd.exe /c flutter.bat $@下面是我的输出,来自颤振医生-v的zsh:
✓Flutter (海峡稳定版,2.5.3,MicrosoftWindowsVersion10.0.19042.1288,locale en-US)·颤振版本2.5.3 at C:\Users\OEM\Documents\flutter·Upstream存储库https://github.com/flutter/flutter.git·Framework修订版18116933e7 (3周前),2021-10-15 10:46:35 -0700·Engine修订版d3ea636dc5·Dart版本2.14.4
Android工具链-为Android设备开发(Android版本31.0.0)·Android在C:\✓\OEM\AppData\Local\ SDK·Platform android-31,build-tools 31.0.0·Java二进制文件: C:\Program \ Android \jre\bin\ Java·Java版本✓运行时环境(Build11.0.10+0-B96-7249189)·所有✓许可被接受。
在C:\ Files\Google\Chrome\Application\chrome.exe上为✓·Chrome开发✓浏览器
Android (2020.3版)·Android在C:\Program \Android·Flutter插件可以从:https://plugins.jetbrains.com/plugin/9212-flutter·Dart插件可以安装在:https://plugins.jetbrains.com/plugin/6351-dart·(Build11.0.10+0-B96-7249189)
在C:\✓\OEM\AppData\✓\✓对代码(版本1.62.0)·VS代码可以从:✓安装
✓连接设备(2个可用)·Chrome (web)·chrome·web-javascript·Google 95.0.4638.69·Edge (web)·edge·web-javascript·Microsoft 95.0.1020.30
一切都很好。但是,VS代码在打开项目时无法初始化颤振,因为它找不到Dart SDK。以下是错误日志的相关部分:
11:55:40 AM信息: 11:55:40 AM Info /home/jack 11:55:40 AM Info
/mnt/c/Users/OEM/Documents/flutter/bin 11:55:40 AM Info候选路径后过滤: 11:55:40 AM Info
/home 11:55:40上午信息
/mnt/c/User/OEM/Documents/颤振11:55:40 AM Info
返回未定义为dart 11:55:40 AM信息颤振的SDK路径未初始化,运行“颤振医生”强制.上午11:55:42 Info进程日志数据.11:55:43 AM /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行: set::无效选项集:使用: set -abefhkmnptuvxBCHP -/mnt/c/Users/OEM/Documents//mnt/c/Users/OEM/Documents/flutter/bin/flutter:/bin/颤振:第15行:$'\r':命令未找到/mnt/c/Users/OEM/Documents/flutter/bin/flutter:第17行: unset:` `CDPATH ':不是有效的identi…11:55:43 AM Info退出(2,null)
我对发展非常陌生,所以如果我的方法离这里很远,请原谅我。有没有办法让VS代码在这个设置中识别我的Dart SDK?还是我最好还是直接使用powershell,让WSL完全消失?谢谢您抽时间见我。
发布于 2021-11-13 15:45:26
虽然我不确定这不能工作,但这肯定不是我( Dart扩展的作者)所期望的使用方式。在WSL中运行时,Dart扩展在Linux-land中运行,并假设颤振进程可能不成立(例如,它可能捕获PID并期望能够向它们发送信号)。
如果您想在WSL中运行,我建议在WSL中设置一个颤振SDK (它将下载Dart SDK的Linux构建)。但是,您可能会发现,有些功能不会以这种方式工作(例如,WSL实例可能看不到在Windows中连接的设备)。
如果您没有真正的需要使用WSL,我建议跳过它-这只是额外的复杂性,您可能不需要。如果您确实需要它,我会对用例感兴趣(了解扩展的用户正在做什么以避免像这样的混乱)。
https://stackoverflow.com/questions/69890965
复制相似问题