雷电模拟器adb devices返回127.0.0.1:5555 offline分析和解决办法
http://www.511yj.com/eyuan-adb-emulator.html
很多安装模拟器都带了adb.exe,有的是在根目录,有的四在tool下,有的改了名字,比如夜神安装模拟器就把adb.exe改成了nox_adb.exe,而逍遥安卓和雷电安卓模拟器都保留android-sdk中的adb.exe,但我们比较的时候,这些adb.exe明显大小不一样,也就是说在开发安卓模拟器时二次封装了adb.exe.
错误描述
当我们运行安卓模拟器时,除了启动自身进程外,都会启动adb.exe,比如当我们启动雷电模拟器时,系统进程里会出现adb.exe和dnplayer.exe两个进程。
这时候我再运行
> adb devices
就会返回
List of devices attached
emulator-5554 device
127.0.0.1:5555 offline
明明开了一个模拟器,为何返回一个连接不上的127.0.0.1:5555 ?当我们测试逍遥安卓时就不会出现,只出现在雷电模拟器上。
错误分析
1、 adb 启动就连接5555端口
启动 adb 的时候, adb 通过 “adb fork-server server” 启动 adb demon
而后demon 就会去找本地的 5555 端口, 直到 5555+32
2、为何连接叫 emulator-5554 而不是 emulator-5555
为何连接上就叫 emulator, 这是因为 adb 期望自动为用户连接本机的emulator ( 可以多达16个)
这是因为缺省emulator的 console 端口是 5554 ( 应该可以用 telnet 连接与 emulator 交互(还没有试验)) , 而adb 的端口是console端口 +1 就是 5555
所以当有程序监听 5555 端口, 会被 adb 认为是 emulator
解决办法:
总思路很简单,先杀死adb.exe进程,再次启动adb.exe.
结束adb.exe进程的办法
一)通过cmd命令结束占用端口进程。
1、5037为adb默认端口
2、查看占用端口的进程PID
> netstat -aon|findstr 5037TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 15448
3、通过PID查看所有进程
> tasklist /fi "PID eq 15448"映像名称 PID 会话名 会话# 内存使用
========================= ======== ================ =========== ============
adb.exe 15448 Console 1 5,728 K
4、杀死占用端口的进程
> taskkill /pid 15448 /f
成功: 已终止 PID 为 15448 的进程。
二)使用api(TerminateProcess)结束进程(adb.exe)
缺点:5037的端口未必是adb.exe占用。比如酷狗,360,电脑管家,很多软件都集成了手机助手,也就是说,启动这些软件的时候,可能就启动了adb,exe,进程名称未必是adb,exe,
三)最佳解决方案
其实,我们在adb模块第三课,adb初始化里,已经通过 adb kill-server和adb start-server处理了这个问题,那么这样独开一个雷电模拟器的时候,返回的是
127.0.0.1:5555 device
其实这也是成功的,这就是第一个模拟器,如果我们先接受了雷电模拟器自启动的adb.exe进程,再次启动adb.exe时,这时候返回的就是
emulator-5554 device
那么我们如何处理这个问题,到底那个最好,在模块初始化中,可以都加上,这样万无一失。
雷电模拟器adb devices返回127.0.0.1:5555 offline分析和解决办法相关推荐
- 【adb命令】通过电脑连接手机,输入adb devices命令报错error: cannot connect to daemon的解决办法
[前提条件]想要通过电脑连接手机:手机用数据线连接上电脑,选择传输文件模式:打开手机的开发者模式,开启USB调试 [操作步骤]在CMD里面输入adb devices [报错信息] ...
- JavaScript中的ParseInt(08)和“09”返回0的原因分析及解决办法
今天在程序中出现一个bugger ,调试了好久,最后才发现,原来是这个问题. 做了一个实验: alert(parseInt("01")),当这个里面的值为01====>07时 ...
- 〖Linux〗Debian 7.1.0 Wheezy使用ltib报错的解决办法
报错内容: scue@Link:/home/work/ltib$ ./ltib Processing platform: Phytec 3250 board with the NXP LPC32XX ...
- totolink服务器未响应,TOTOLINK 路由器 192.168.0.1登录页面打不开解决办法
TOTOLINK 路由器 192.168.0.1登录页面打不开解决办法 2016-12-15 1.正确设置电脑IP地址:电脑连接路由器上网.用电脑设置路由器时,都需要把电脑本地连接(以太网)中的IP地 ...
- 对于“优盘变成了RAW的文件系统,双击提示需要格式化,右键查看属性是0字节,也无法打开”的解决办法
对于"优盘变成了RAW的文件系统,双击提示需要格式化,右键查看属性是0字节,也无法打开"的解决办法 现象分析: 前几天我的优盘在学校机房的电脑上使用了一下,不知怎的文件复制到一半的 ...
- Redis 4.0.X版本reshard出现错误的解决办法
原文链接:https://my.oschina.net/juluking/blog/1606222 原作者的版本是Redis 4.0.6,我的版本是4.0.8,所以猜测是否所有4.0.x版本都有此问题 ...
- AndroidStudio3.0无法打开Android Device Monitor的解决办法(An error has occurred on Android Device Monitor)...
---恢复内容开始--- 打开monitor时出现 An error has occurred. See the log file... ------------------------------- ...
- Server Tomcat v7.0 Server at localhost failed to start.解决办法(图文详解)
问题描述 Server Tomcat v7.0 Server at localhost failed to start. 解决办法 把你工作空间文件夹下的如下路径打开: <workspace-d ...
- ASP.NET 2.0中的Session状态丢失的解决办法
ASP.NET 2.0引进了不让脚本使用的HttpOnly的cookie,,通过客户端脚本执行的某些操作可能会使session丢失. 解决办法:在global.asax中设置HttpOnly属性为Fa ...
最新文章
- 如何快速清理docker资源
- mate30pro什么时候可以升级鸿蒙,mate 30pro什么时候能装鸿蒙系统?
- 求中位数_图解面试题:如何分析中位数?
- javaScript第七天(2)
- as模拟器文件夹路径_EGG Switch手机模拟器怎么用?中文教程来了......
- 记录博客第一次上热门
- Linux系统学习:网络指令:如何查看一个域名有哪些 NS 记录
- http与websocket(基于SignalR)两种协议下的跨域基于ASP.NET MVC--竹子整理
- 在线协作编辑算法简介- OT算法
- ubuntu 20.04 编译yocto 错误集锦
- 408考研计算机网络视频,计算机408考研视频哪个好
- mysql drop语句怎么用_SQL DROP 语句
- 【论文笔记】Information Extraction over Structured Data: Question Answering with Freebase
- 凤凰卫视:专业、互动、持续的云服务助力凤凰新媒体转型
- JAVA面试准备小记
- 第7章 使用RAID与LVM磁盘阵列技术
- 支付宝当面付之扫码支付“无效签名”
- 接口测试的标准和规范性
- 乐信、趣店同源“异路”
- sdio wifi 移植
热门文章
- python全栈开发实战pdf老男孩_Python教程:2017年老男孩最新全栈python第2期视频教程全套完整版...
- window 结束进程命令
- 13-TDengine使用JDBC-JNI连接报错:JNI connection is NULL
- 【java】json字符串转json文件
- PHP 常用函数 - 数组函数
- 【综合练习1】彩虹枚举(红橙黄绿青蓝紫的英文)(>Red:红 >Orange:橙 >Yellow:黄 >Green:绿 >Blue:青 >Indigo:蓝 >Purple:紫)
- 如何让暴风影音播放flv文件
- 技术分享| 视频监控融合方案
- 基于GB/T 28181 标准的监控摄像头视频接入技术
- PDF-XChange Editor