创建Flutter新项目后运行报错:无法找到文件对应的库
问题概述
我是Flutter新手,创建新项目后在VSCode中启动iOS模拟器时出现错误:
Unable to find the library for file:///Users/myname/Desktop/NewFlutterProject/newflutterproject/lib/main.dart
#0 DartDebugAdapter.evaluateRequest (package:dds/src/dap/adapters/dart.dart:1060:7)
#1 BaseDebugAdapter.handle (package:dds/src/dap/base_debug_adapter.dart:141:7)
运行flutter doctor后发现多个环境问题,重装Homebrew和CocoaPods也未解决,最新的flutter doctor输出:
Doctor summary (to see all details, run flutter doctor -v):
[!] Flutter (Channel stable, 3.16.5, on macOS 14.2.1 23C71 darwin-arm64, locale en-US)
! Warning:darton your path resolves to /opt/homebrew/Cellar/dart/3.2.4/libexec/bin/dart, which is not inside your current Flutter SDK checkout at /Users/oliverroberts/development/flutter. Consider adding /Users/oliverroberts/development/flutter/bin to the front of your path.
[!] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
✗ cmdline-tools component is missing
Runpath/to/sdkmanager --install "cmdline-tools;latest"
✗ Android license status unknown.
Runflutter doctor --android-licensesto accept the SDK licenses.
[✓] Xcode - develop for iOS and macOS (Xcode 15.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2023.1)
[✓] VS Code (version 1.85.1)
[✓] Connected device (3 available)
[✓] Network resources! Doctor found issues in 2 categories
修复步骤
1. 修正Dart路径冲突
- 打开终端,执行以下命令(如果用bash则替换
~/.zshrc为~/.bash_profile):echo 'export PATH="/Users/oliverroberts/development/flutter/bin:$PATH"' >> ~/.zshrc source ~/.zshrc - 验证:输入
which dart,输出应为/Users/oliverroberts/development/flutter/bin/dart
2. 补全Android工具链
- 打开Android Studio,进入
设置 > 外观与行为 > 系统设置 > Android SDK > SDK工具,勾选Android SDK 命令行工具(最新版),点击应用完成安装。 - 终端运行:
全程输入flutter doctor --android-licensesy确认所有许可证协议
3. 解决VSCode找不到main.dart的问题
- 关闭VSCode,重新打开项目根目录(必须是
/Users/myname/Desktop/NewFlutterProject/newflutterproject,而非上层的NewFlutterProject文件夹) - 尝试重装VSCode中的Flutter和Dart插件
- 终端进入项目根目录,手动执行:
flutter pub get flutter run
4. 验证修复结果
终端运行flutter doctor,确认所有检查项均显示✓后,再尝试在VSCode中启动iOS模拟器运行项目
内容的提问来源于stack exchange,提问作者user20988452

