Mac M1 2020运行flutter doctor -v报错求助
Flutter doctor -v 执行失败(Mac M1 2020)
问题描述
在Mac M1 2020设备上使用Flutter时,运行flutter doctor -v命令抛出以下错误栈:
#0 throwToolExit (package:flutter_tools/src/base/common.dart:10:3) #1 _DefaultPub._runWithStdioInherited (package:flutter_tools/src/dart/pub.dart:447:7) <asynchronous suspension> #2 _DefaultPub.get (package:flutter_tools/src/dart/pub.dart:323:5) <asynchronous suspension> #3 PubDependencies.update (package:flutter_tools/src/flutter_cache.dart:126:5) <asynchronous suspension> #4 Cache.updateAll (package:flutter_tools/src/cache.dart:677:9) <asynchronous suspension> #5 FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:1518:7) <asynchronous suspension> #6 FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1336:27) <asynchronous suspension> #7 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19) <asynchronous suspension> #8 CommandRunner.runCommand (package:args/command_runner.dart:212:13) <asynchronous suspension> #9 FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:296:9) <asynchronous suspension> #10 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19) <asynchronous suspension> #11 FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:244:5) <asynchronous suspension> #12 run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:91:9) <asynchronous suspension> #13 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19) <asynchronous suspension> #14 main (package:flutter_tools/executable.dart:91:3) <asynchronous suspension>
已尝试以下方案但均未解决问题:
- 重装最新版本的Flutter
- 确认Xcode和Android Studio已正确安装并更新至最新版本
- 检查环境变量,已将Flutter的bin目录添加至PATH
- 执行
flutter doctor --android-licenses确认已接受所有Android许可证 - 多次重启笔记本电脑
- 清理Flutter缓存后重新运行doctor命令
- 直接运行
flutter doctor无任何输出
解决建议
1. 安装并启用Rosetta 2
M1芯片为ARM架构,部分Flutter工具依赖x86_64二进制文件,执行以下命令安装Rosetta 2:
/usr/sbin/softwareupdate --install-rosetta --agree-to-license
安装完成后,右键终端图标选择「使用Rosetta打开」,再重新运行flutter doctor -v。
2. 手动配置Dart SDK路径
若Flutter无法自动关联Dart SDK,手动添加路径至环境变量:
export PATH="$PATH:/path/to/flutter/bin/cache/dart-sdk/bin"
将/path/to/flutter替换为你的Flutter实际安装目录,执行后重新运行flutter doctor -v。
3. 修复Flutter目录权限
确保Flutter安装目录及缓存目录拥有读写权限:
sudo chmod -R 755 /path/to/flutter sudo chown -R $(whoami) /path/to/flutter
替换路径后,清理缓存再重试:
flutter clean flutter pub get flutter doctor -v
4. 切换至Flutter稳定通道
若当前使用dev/master通道,可能存在兼容性问题,切换至稳定版:
flutter channel stable flutter upgrade flutter doctor -v
5. 重新配置Xcode命令行工具
确保Xcode命令行工具正确安装并授权:
xcode-select --install sudo xcode-select -s /Applications/Xcode.app/Contents/Developer xcodebuild -license accept
完成后重启终端,再执行flutter doctor -v。
内容的提问来源于stack exchange,提问作者Dev
相关产品推荐
相关产品推荐

