◇ 开发环境
操作系统:Win7
IDE:Android Studio
设备:Genymotion模拟器
◇ 问题来源
adb start-server failed – run manually if necessary
Android Studio中运行项目时,Log提示
start-server failed -- run manually if necessary
,而且弹出的对话框中并没有可选的设备。could not install“smartsocket”listener
由于
start-server failed
,考虑到有可能是运行adb服务的5037端口被占用,于是打开cmd窗口使用adb kill-server
和adb start-server
来重启adb服务,结果导致了Log输出error: could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037...
,详细Log如下图:
◇ 问题分析
通过对问题进行查找,发现有两种原因导致异常:
- 运行adb服务的5037端口被占用
- Genymotion模拟器配置的SDK路径与AS中配置的SDK路径不一致
◇ 解决方案
运行adb服务的5037端口被占用
Step 01: 开始 –> 运行 –> cmd,或win+R组合键 –> cmd,调出命令窗口;
Step 02: 输入
netstat -ano | findstr "5037"
命令查看5037端口占用情况,如下图:
Step 03: 输入
tasklist | findstr "7736"
命令查看7736对应的应用程序名称,如下图:
Step 04: 如果应用名称如图所示显示的是”adb.exe”,那么就是Genymotion模拟器配置的sdk路径与AS的SDK路径不相同;如果显示的应用名称是”wandoujia2.exe”、”kugou.exe”等应用程序,可以打开任务管理器窗口结束掉对应的应用程序即可。
Genymotion模拟器配置的SDK路径与AS中配置的SDK路径不一致
Step 01: 打开Genymotion模拟器界面,选择“Settings”选项,如下图:
Step 02: 选择ADB选项卡,重新配置SDK路径,使该路径与Android Studio中配置的路径保持一致即可,如下图:
通过上述两种方案解决问题后运行项目,弹出的对话框中会出现可选的Genymotion设备,选择设备运行即可。