WSL环境下Expo无法调用Windows端adb.exe的问题求助
解决WSL环境下Expo调用Windows端adb报错的问题
针对你遇到的Error: spawn /mnt/c/Users/Usuario/AppData/Local/Android/Sdk/platform-tools/adb ENOENT错误,按以下步骤排查解决:
纠正环境变量配置
你当前设置的ANDROID_SDK变量不符合规范,Expo/Metro依赖ANDROID_HOME(指向SDK根目录)和包含adb的PATH路径。修改~/.bashrc文件,替换原有配置为:export ANDROID_HOME="/mnt/c/Users/Usuario/AppData/Local/Android/Sdk" export PATH="$ANDROID_HOME/platform-tools:$PATH"注意路径大小写要和实际一致(以报错路径里的
Sdk为准),且不要在路径前加多余冒号。修改后执行source ~/.bashrc让配置生效。确保WSL能正确识别Windows版adb
WSL中调用Windows可执行文件需要带.exe后缀,可通过以下方式处理:- 在
~/.bashrc中添加别名:alias adb='adb.exe',执行source ~/.bashrc后,测试adb version是否能正常输出版本信息。 - 或者直接在Expo配置中指定完整adb路径:在项目根目录的
app.json里添加:"expo": { // 其他配置... "android": { "adbPath": "/mnt/c/Users/Usuario/AppData/Local/Android/Sdk/platform-tools/adb.exe" } }
- 在
验证adb可用性
在WSL终端执行/mnt/c/Users/Usuario/AppData/Local/Android/Sdk/platform-tools/adb.exe version,确认能正常运行。若仍有问题,检查路径是否正确(比如用户名Usuario拼写、Windows端SDK路径是否变动)。重启Metro服务
关闭当前的npx expo start进程,重新启动后再尝试打开Android模拟器。
内容的提问来源于stack exchange,提问作者Bernardo Rossetti
相关产品推荐
相关产品推荐

