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

Docker中运行React-Native Android开发环境失败求助

解决Docker容器内React-Native无法连接主机Android模拟器的问题

问题核心

执行docker-compose up时触发错误:

error Failed to install the app. Make sure you have an Android emulator running or a device connected

已在主机启动Nexus 5 API 30模拟器,但容器内执行adb connect localhost:5555无法建立连接,且无法修改AVD端口配置。

解决方案步骤

1. 配置主机adb允许远程连接

主机adb默认仅绑定localhost,容器无法直接访问。执行以下命令重启adb服务并开放所有接口:

adb kill-server
adb -a nodaemon server --port 5037 &

2. 修改容器内adb连接目标

无需直接连接模拟器端口,容器应通过主机adb服务器获取设备列表。更新docker-compose.yaml的entrypoint:

entrypoint: ['bash', '-c', 'adb connect host.docker.internal:5037 && adb devices && yarn android']
  • Linux系统中若host.docker.internal无法识别,替换为主机实际IP(如192.168.1.100)

3. 对齐adb版本

容器与主机的adb版本必须一致,否则会触发连接失败:

  • 主机执行adb version查看版本信息
  • 进入容器执行adb version对比,版本不符时需更换镜像或在容器内安装对应版本的adb

4. 优化Docker配置

  • 移除docker-compose.yaml中network_mode: host下冗余的ports映射(host模式下端口映射无效)
  • 删除Dockerfile中USER node后的RUN yarn install(挂载主机代码目录后,构建阶段的安装无意义),可在entrypoint中加入依赖安装步骤:
    entrypoint: ['bash', '-c', 'yarn install && adb connect host.docker.internal:5037 && adb devices && yarn android']
    
  • 给容器内node用户添加adb权限,在Dockerfile中添加:
    USER root
    RUN usermod -aG plugdev node
    USER node
    

5. 验证连接状态

容器启动后,查看adb devices输出,若能显示主机的模拟器,说明连接成功,此时yarn android可正常安装应用。


内容的提问来源于stack exchange,提问作者Louis Eiden

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 07:37:37