51NotePage

Apple Silicon 下 Flutter/Dart SDK is not configured 的解决方式

25 11 月, 2024 | by 51

Apple Silicon 下 Flutter/Dart SDK is not configured 的解决方式

问题背景

最近在 macOS 下配置 Flutter 开发环境时,遇到了一些典型的配置问题,特别是关于 Dart SDK 的配置和 Android Studio 的设置。这篇文章将详细记录问题的发现和解决过程,希望能帮助遇到类似问题的开发者。

问题描述

在配置过程中,主要遇到了以下几个问题:

  1. Android Studio 报错 “Dart SDK is not configured”
  2. Dart SDK 路径配置混乱
  3. Flutter 安装位置与预期不符

问题排查

1. Dart SDK 路径查找

首先,我尝试通过终端命令查找 Dart 的安装位置:

which dart
# 输出: /opt/homebrew/bin/dart

这个路径只是一个可执行文件的位置,而不是完整的 SDK 路径。我还尝试查找完整的 SDK 目录:

ls /opt/homebrew/opt/dart/libexec
# 输出: No such file or directory

这表明我的系统中的 dart 命令可能是通过 Flutter 安装的,而不是独立安装的 Dart SDK。

2. Flutter 安装位置确认

通过进一步检查,发现 Flutter 实际安装在了:

/opt/homebrew/Caskroom/flutter/3.24.1/flutter

这是因为我使用了 Homebrew Cask 来安装 Flutter。在 Apple Silicon Mac 上,这是一个正常的安装路径。当 Flutter 和 Android Studio 断联,Flutter 插件停止管理 Dart SDK 就会出现这样的问题。换句话说,其实一般不需要指定 Dart SDK 的位置。

问题原因

经过分析,问题的主要原因是:

  1. IDE 配置错误:在 Android Studio 中试图手动指定 dart 可执行文件路径
  2. 项目打开方式不当:直接打开了 Flutter 项目中的 android 目录
  3. 对 Flutter/Dart SDK 路径结构理解不清

解决方案

1. 正确配置环境变量

编辑 ~/.zshrc 文件(如果使用 bash,则编辑 ~/.bash_profile):

# 添加 Flutter 到 PATH
export PATH="/opt/homebrew/Caskroom/flutter/3.24.1/flutter/bin:$PATH"

更新配置:

source ~/.zshrc

2. 验证 Flutter 安装

# 检查 Flutter 版本
flutter --version

# 检查环境配置
flutter doctor -v

3. Android Studio 正确配置

  1. 确保安装必要插件:
  2. Flutter plugin
  3. Dart plugin
  4. 正确打开项目:
  5. 选择整个 Flutter 项目目录(包含 pubspec.yaml 的目录)
  6. 不要只打开 android 子目录
  7. 让 IDE 自动配置 SDK:
  8. 不要手动指定 Dart SDK 路径
  9. 让 Flutter 插件自动管理配置

4. 清理和重置(如果需要)

如果还遇到问题,可以尝试:

# 清理项目
flutter clean

# 重新获取依赖
flutter pub get

注意事项

  1. 路径差异
  2. Apple Silicon Mac:Homebrew 基础路径在 /opt/homebrew/
  3. Intel Mac:Homebrew 基础路径在 /usr/local/
  4. 项目结构:确保打开完整的 Flutter 项目结构:
    your_flutter_project/
      ├── android/
      ├── ios/
      ├── lib/
      ├── pubspec.yaml
      └── ...
    
  5. 版本管理:使用 Flutter 自带的 Dart SDK,避免单独安装和配置 Dart

RELATED POSTS

View all

view all