macOS M1双账户环境下VS Code中Flutter设备不显示问题求助
问题
我使用的是macOS M1设备,已安装Flutter、VS Code、Android Studio和Xcode,设备上有两个账户。在第一个账户中,VS Code底部状态栏能显示设备;但第二个账户中显示“无设备”,执行命令面板中的“Flutter: Launch Emulator”也无设备显示。我已在第二个账户的Android Studio中添加了Pixel 6设备,但VS Code仍无设备显示,运行flutter doctor无报错。
执行flutter devices命令后得到以下结果:
3 connected devices: sdk gphone64 arm64 (mobile) • emulator-5554 • android-arm64 • Android 13 (API 33) (emulator) macOS (desktop) • macos • darwin-arm64 • macOS 13.4.1 22F82 darwin-arm64 Chrome (web) • chrome • web-javascript • Google Chrome 114.0.5735.198 No wireless devices were found.
疑问:我使用第一个账户安装了VS Code和Android Studio,这是否是问题原因?如何让第二个账户也能显示Flutter设备?
解决方案
是的,第一个账户安装VS Code和Android Studio确实会因为权限、环境变量配置问题导致第二个账户无法识别设备,以下是具体解决步骤:
1. 配置环境变量
- 打开第二个账户的终端,执行
echo $ANDROID_HOME和echo $PATH,确认输出中包含Android SDK的路径(通常第一个账户的SDK路径为/Users/[第一个账户名]/Library/Android/sdk)。 - 如果未包含,编辑shell配置文件(zsh用户为
~/.zshrc,bash用户为~/.bash_profile),添加以下内容:export ANDROID_HOME="/Users/[第一个账户名]/Library/Android/sdk" export PATH="$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools:$PATH" - 执行
source ~/.zshrc(对应你的shell配置文件)使配置生效,再运行flutter devices验证设备是否被识别。
2. 修复SDK目录权限
- 由于SDK由第一个账户安装,第二个账户可能缺乏读写权限。在终端执行:
sudo chmod -R 755 /Users/[第一个账户名]/Library/Android/sdk - 也可以将第二个账户加入第一个账户的用户组,确保长期访问权限:
# 先获取第一个账户的用户组名 id -g [第一个账户名] # 将第二个账户添加到该组 sudo dscl . append /Groups/[获取到的组名] GroupMembership [第二个账户名]
3. 配置VS Code的Flutter相关路径
- 在第二个账户的VS Code中,按
Cmd+,打开设置:- 搜索
Flutter SDK Path,设置为第一个账户的Flutter安装路径(如/Users/[第一个账户名]/flutter)。 - 搜索
Android SDK Path,设置为第一个账户的SDK路径。
- 搜索
- 保存设置后重启VS Code,查看状态栏设备列表是否恢复。
4. 手动验证模拟器连接
- 在第二个账户的终端执行
emulator -list-avds,确认能列出已创建的模拟器。 - 若能列出,执行
emulator -avd [模拟器名称]启动模拟器,再检查VS Code的设备识别情况。
内容的提问来源于stack exchange,提问作者Gunnarius
相关产品推荐
相关产品推荐

