在WSL2上开发Flutter Web应用时Chrome无法被识别问题求助
问题原因
WSL2挂载的Windows NTFS分区默认文件权限逻辑和Linux原生文件系统不同,Flutter的可执行文件校验逻辑无法正确识别Windows端exe文件的可执行状态,即便你手动可以正常启动Chrome,Flutter仍然会判定文件不可执行。
解决步骤
方案1:直接配置Chrome执行路径环境变量
打开你使用的shell配置文件(~/.bashrc对应Bash,~/.zshrc对应Zsh),在末尾添加如下内容:export CHROME_EXECUTABLE="/mnt/c/Program Files/Google/Chrome/Application/chrome.exe"保存后执行
source ~/.bashrc(或对应zsh的配置文件)使配置生效,重新运行flutter doctor校验是否恢复正常。方案2:创建执行 wrapper 脚本(方案1失效时使用)
如果方案1仍然触发权限报错,可以通过Linux原生脚本绕开Flutter的权限校验:- 执行命令创建脚本文件:
sudo nano /usr/local/bin/chrome- 在文件中写入如下内容:
#!/bin/sh exec "/mnt/c/Program Files/Google/Chrome/Application/chrome.exe" "$@"- 保存退出后给脚本添加执行权限:
sudo chmod +x /usr/local/bin/chrome- 再修改shell配置文件里的CHROME_EXECUTABLE为:
export CHROME_EXECUTABLE="/usr/local/bin/chrome"重新source配置文件后再次运行
flutter doctor校验即可。
验证
配置完成后执行flutter run -d chrome,可以正常唤起Windows端Chrome并进入Web开发调试模式即代表修复完成。
内容的提问来源于stack exchange,提问作者Ray Lee
相关产品推荐
相关产品推荐

