WSL2+Windows11环境React Native构建ADB 5037端口连接失败求助
解决WSL2中React Native构建时ADB反复重启卡在app:installDebug的问题
核心问题分析
WSL2环境下,Gradle构建过程中调用Windows的ADB时存在跨系统端口通信冲突,导致ADB服务器反复重启——单独使用ADB功能正常,但构建场景下无法稳定连接。
解决方案步骤
1. 统一WSL与Windows的ADB版本
- Windows命令提示符执行:
adb version - WSL终端执行:
/mnt/c/Users/aoeif/AppData/Local/Android/Sdk/platform-tools/adb version
确保两者版本完全一致,若不一致,打开Windows的Android Studio,通过SDK Manager更新Platform Tools到最新版本,同步WSL端调用的ADB版本。
2. 配置WSL环境变量指向Windows的ADB
在WSL终端执行以下命令(可添加到~/.bashrc或~/.zshrc实现永久生效):
export PATH="/mnt/c/Users/aoeif/AppData/Local/Android/Sdk/platform-tools:$PATH" export WSL_HOST=$(tail -1 /etc/resolv.conf | cut -d' ' -f2) export ADB_SERVER_SOCKET=tcp:$WSL_HOST:5037
3. 配置Windows端口转发
以管理员身份打开PowerShell,执行端口转发命令:
netsh interface portproxy add v4tov4 listenport=5037 listenaddress=0.0.0.0 connectport=5037 connectaddress=$(wsl hostname -I | cut -d' ' -f1)
4. 强制Gradle使用指定ADB路径
修改项目android/build.gradle文件,添加ADB路径配置:
subprojects { afterEvaluate { project -> if (project.hasProperty("android")) { android { adbExecutable = "/mnt/c/Users/aoeif/AppData/Local/Android/Sdk/platform-tools/adb" } } } }
5. 重置ADB服务并重启相关程序
- 关闭Android Studio及所有模拟器
- Windows命令提示符执行:
adb kill-server - WSL终端执行:
adb kill-server - 重新启动模拟器,WSL端执行
adb devices确认设备正常连接后,再运行npx react-native run-android
额外排查:检查端口占用
Windows命令提示符执行以下命令,查看5037端口是否被其他进程占用:
netstat -ano | findstr :5037
若存在占用进程,通过任务管理器结束对应PID的进程。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

