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

Ubuntu 18.04环境下启动超16个Android模拟器失败求助

如何在Ubuntu 18.04上启动超过16个Android模拟器?

问题场景

环境:

  • Ubuntu 18.04
  • JDK 8

启动超过16个Android模拟器时触发报错:

It seems too many emulator instances are running on this machine. Aborting.

已尝试以下操作但无效:

  • 临时执行export ADB_LOCAL_TRANSPORT_MAX_PORT=5999
  • 在~/.bashrc中添加ADB_LOCAL_TRANSPORT_MAX_PORT=5999
  • 带环境变量启动模拟器:ADB_LOCAL_TRANSPORT_MAX_PORT=5999 emulator -avds test_x86
  • 修改Android源码中packages/modules/adb/client/transport_local.cpp的默认模拟器数量,重新编译adb并替换SDK中的旧文件

解决方案

这个错误的核心是模拟器默认的自动端口分配范围限制(默认仅预留16个设备的端口),而非adb的限制,调整方向如下:

1. 手动指定模拟器端口

默认模拟器自动分配的端口范围是5554-5584(每个模拟器占用一对偶数/奇数端口,比如5554用于控制台,5555用于adb连接),仅支持16个设备。要突破限制,需手动给每个模拟器指定不重复的偶数端口:

启动单个模拟器的命令示例:

emulator -avd test_x86_1 -port 5554 &
emulator -avd test_x86_2 -port 5556 &
emulator -avd test_x86_3 -port 5558 &
# 以此类推,端口按偶数递增,直到需要的数量

如果需要批量启动,可使用脚本:

# 启动20个模拟器的示例
for i in {1..20}; do
  # 计算端口:从5554开始,每个设备加2
  port=$((5554 + 2*(i-1)))
  # 后台启动模拟器
  emulator -avd test_x86_$i -port $port &
done

2. 调整ADB端口上限确保识别

同时需要让adb能识别所有扩展的端口,设置ADB_LOCAL_TRANSPORT_MAX_PORT为大于最大奇数端口的值(比如最大端口是6000,对应奇数端口是6001,所以设为6001),并确保该变量在模拟器启动前生效:

# 先设置环境变量
export ADB_LOCAL_TRANSPORT_MAX_PORT=6001
# 再执行批量启动命令
for i in {1..20}; do
  port=$((5554 + 2*(i-1)))
  emulator -avd test_x86_$i -port $port &
done

3. 系统资源适配

启动大量模拟器需要足够的系统资源:

  • 确保机器有足够内存(建议每个模拟器分配至少1GB内存)
  • 开启CPU虚拟化(BIOS中启用VT-x/AMD-V)
  • 调整模拟器的性能设置(比如使用x86镜像、启用快速启动)

验证

执行adb devices命令,确认所有启动的模拟器都被识别为在线设备。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 20:35:21