You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 20:15:43