使用adb命令连接模拟器,在5037端口未被占用情况下仍报端口错误

本文解决了一个在Win7 64位系统中使用ADB命令连接模拟器时出现的问题,即在5037端口未被占用的情况下仍无法启动ADB服务。通过复制ADB相关文件到特定目录解决了这一难题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                                                *转载请注明出处,勿做商业用途*

问题:

win7 64位系统使用adb命令连接模拟器,在5037端口未被占用情况下,报以下错误:

   * daemon not running. starting it now on port 5037 *
   CreateProcess failure, error 2
   * failed to start daemon *
   error: cannot connect to daemon


解决方法:

1.将本机C:\WINDOWS\System32下的adb.exe文件复制到C:\Windows\SysWOW64下。
2.将本机C:\WINDOWS\System32下的AdbWinApi.dll文件复制到C:\Windows\SysWOW64下。


解决过程:

第一步:

初一看应该是5037端口被占用了,一个比较常见的错误,于是马上执行命令查看5037端口被谁占用了:

   netstat -ano | finder "5037"

但是神奇的事情发生了,结果是没有任何程序占用该端口。

第二步:

于是执行adb kill-server ,OK,再执行adb start-server,又提示相同的错误了,adb无法在5037端口启动。

第三步:

执行一下adb nodaemon server命令看看什么情况,这是一个比较有用的命令,一般情况下它会告诉我们哪里出问题了

  adb nodaemon server

不幸的是仍然没有提示任何错误

第四步:

检查环境变量配置,没有错误

第五步:

基本排除adb本身的错误,开始定位CreateProcess failure, error 2 这个错误,查到了错误代码:

windows error code 2 means: 2 The system cannot find the file specified. ERROR_FILE_NOT_FOUND
and from the source code this is after a call to CreateProcess() and the file name is given by GetModuleFileName()

已经查证过不是环境配置的问题,所以定位为系统无法启动该文件。

第六步:

 进入C:\WINDOWS\System32目录,检查adb相关文件。都是正确的。

第七步:

复制\System32目录下的adb.exe文件到C:\WINDOWS\SysWOW64 ,再次执行adb devices命令,提示缺失AdbWinApi.dll文件

再将\System32目录下的AdbWinApi.dll文件copy到C:\WINDOWS\SysWOW64,执行adb devices命令成功。


问题扩展:

1.32位系统
   AdbWinApi.dll文件的说明如下:
   If that doesn't work, you will have to extract the .dll to your system directory. By default, this is:
   C:\Windows\System (Windows 95/98/Me)
   C:\WINNT\System32 (Windows NT/2000)
   C:\Windows\System32 (Windows XP, Vista, 7, win 8)
   If you use a 64-bit version of Windows, you should also place the .dll in C:\Windows\SysWOW64\

   所以32位系统应该不需要执行步骤2即可解决,有待验证。



                                                                 *转载请注明出处,勿做商业用途*


<think>嗯,用户让我介绍一下如何使用ADB命令连接雷电模拟器。首先,我需要确认用户对ADB和雷电模拟器的了解程度。ADBAndroid Debug Bridge,用于和Android设备通信的工具,而雷电模拟器是常用的安卓模拟器之一。用户可能是在开发或测试应用时需要连接模拟器进行调试。 雷电模拟器默认使用特定的端口,比如5555,但不同实例可能有不同的端口。首先,用户需要确保ADB已经安装,并且配置好了环境变量。如果用户是开发者,可能已经安装了Android SDK,但如果是新手,可能需要指导他们如何安装ADB工具。 接下来,我需要列出具体的步骤。首先是打开雷电模拟器,然后找到模拟器的IP和端口。雷电模拟器通常使用本地地址127.0.0.1,端口可能从5555开始,多个实例的话端口号会递增,比如5555、5557等。用户可能需要查看模拟器的设置或文档确认端口号,或者通过ADB命令adb devices查看已连接的设备,但有时模拟器可能没有正确显示,这时候需要手动连接。 然后,用户需要通过ADB命令adb connect 127.0.0.1:端口号来连接。如果连接成功,会显示connected,这时可以用adb devices确认设备是否在列表中。如果连接失败,可能需要检查端口是否正确,或者模拟器是否正常运行。另外,防火墙或杀毒软件有时会阻止连接,这也是一个常见的问题点。 可能用户遇到的问题还包括多个模拟器实例的情况,每个实例的端口不同,所以需要明确指定端口。或者,用户可能没有开启模拟器ADB调试功能,虽然雷电模拟器默认应该开启,但有时可能需要手动检查。 此外,用户可能不知道如何查看模拟器端口号。雷电模拟器通常在标题栏显示端口号,或者在设置中可以找到。如果用户使用的是多开器,每个实例的端口号可能会有规律的变化,比如第一个是5555,第二个是5555+2*1=5557,第三个是5555+2*2=5559,以此类推。这部分可能需要详细说明,帮助用户确定正确的端口。 另外,可能需要提醒用户如果ADB版本过旧,连接时可能会有问题,建议更新到最新版本。或者,如果用户之前连接过其他设备,可能需要重启ADB服务,使用adb kill-server然后adb start-server,再尝试连接。 总结一下,步骤应该是:启动雷电模拟器,确定端口号,使用adb connect连接,验证连接,处理可能的问题。同时,要给出示例命令和常见问题解决方法,比如端口错误连接失败的情况。确保用户能够一步步跟随操作,解决实际问题。</think>使用 ADBAndroid Debug Bridge)命令连接雷电模拟器(如雷电安卓模拟器)的步骤如下: --- ### **1. 准备工作** - **安装雷电模拟器**:确保已安装并启动雷电模拟器。 - **配置 ADB 工具**: - 如果已安装 Android SDK,ADB 工具路径通常为 `sdk/platform-tools/adb`。 - 若安装,可单独下载 [ADB 工具包](https://developer.android.com/studio/releases/platform-tools) 并解压到本地目录。 --- ### **2. 获取雷电模拟器ADB 连接信息** 雷电模拟器默认使用 **本地端口** 进行 ADB 连接,不同实例的端口号规则如下: - **单开模拟器**:默认端口为 `5555`。 - **多开模拟器**端口号按 `5555 + 2*实例序号` 递增。例如: - 第1个实例:`5555` - 第2个实例:`5555 + 2*1 = 5557` - 第3个实例:`5555 + 2*2 = 5559` --- ### **3. 通过 ADB 连接模拟器** 1. **打开命令提示符(CMD)或终端**,进入 ADB 工具所在目录。 2. **执行连接命令**: ```bash adb connect 127.0.0.1:<端口号> ``` - 示例(单开模拟器): ```bash adb connect 127.0.0.1:5555 ``` - 成功后会显示:`connected to 127.0.0.1:5555`。 3. **验证设备是否连接**: ```bash adb devices ``` 输出中应包含类似 `127.0.0.1:5555 device` 的条目。 --- ### **4. 常见问题解决** - **连接失败**: - 确认模拟器已启动且端口正确。 - 检查防火墙是否阻止了 ADB 连接。 - 尝试重启 ADB 服务: ```bash adb kill-server adb start-server ``` 然后重新执行 `adb connect`。 - **端口号不明确**: - 查看雷电模拟器标题栏,通常会显示当前实例的端口号(如 `127.0.0.1:5555`)。 - 通过雷电多开器的“设置”或“属性”查看具体端口。 --- ### **5. 其他常用 ADB 命令** - 安装 APK: ```bash adb install app.apk ``` - 进入设备 Shell: ```bash adb -s 127.0.0.1:5555 shell ``` - 截图保存到电脑: ```bash adb exec-out screencap -p > screenshot.png ``` --- 通过以上步骤,即可成功通过 ADB 连接雷电模拟器并进行调试操作。如有其他问题,欢迎补充具体场景! 😊
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值