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

如何在VS Code开发容器中使用Windows主机的Android模拟器运行RN Expo应用

解决Dev Container中Expo连接Windows主机AVD的问题

核心问题分析

容器内无法识别Android SDK路径、无法连通主机AVD的adb端口,本质是容器环境缺失Android工具依赖、主机与容器的网络隔离导致的连接失败。


步骤1:在容器内配置Android SDK与adb依赖

  1. 在postCreateCommand.sh中添加adb安装与环境变量配置:
    # 安装adb工具(适配Ubuntu/Debian环境)
    apt-get update && apt-get install -y android-tools-adb
    
    # 设置Android SDK环境变量(Expo需依赖此路径识别adb)
    export ANDROID_HOME=/usr/local/android-sdk
    export PATH=$PATH:$ANDROID_HOME/platform-tools
    
  2. 若需持久化环境变量,可将上述export命令写入容器的~/.bashrc或~/.zshrc文件。

步骤2:打通主机与容器的adb网络连接

  1. 在Windows主机上配置adb远程端口:
    打开主机命令提示符(CMD/PowerShell),执行:
    adb tcpip 5555
    
    (确保AVD已启动,且主机adb devices能正常检测到该模拟器)
  2. 获取主机局域网IP:
    在主机CMD执行ipconfig,找到当前网络的IPv4地址(如192.168.3.10)。
  3. 在容器内连接主机AVD:
    替换为你的主机IP后执行:
    adb connect 192.168.3.10:5555
    
    验证连接:执行adb devices,若输出包含主机AVD设备则连接成功。

步骤3:配置端口转发与防火墙放行

  1. Dev Container端口转发:
    在.devcontainer.json中添加端口转发规则:
    "forwardPorts": [5555],
    "portsAttributes": {
      "5555": {
        "protocol": "tcp",
        "label": "ADB Remote Debug"
      }
    }
    
    或在VS Code的「Ports」面板手动添加5555端口映射。
  2. Windows防火墙放行:
    打开Windows Defender防火墙,创建入站规则:
    • 允许TCP端口5555
    • 允许来自容器所在网络的访问(如WSL2子网,可直接选择「所有网络」简化配置)

步骤4:启动Expo并连接AVD

执行npx expo start --android,此时Expo会自动识别已连接的AVD设备,无需扫码即可在模拟器中加载应用。


内容的提问来源于stack exchange,提问作者Raf uchiha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 19:15:08