ADB未启动(无错误消息)

我正在尝试运行adb。 当我运行:“adb start-server”它会暂停一段时间,然后没有消息。

之后命令“adb get-state”收到答案“错误:协议错误(无状态)”如果我运行“adb kill-server”,答案是“*服务器未运行*”

我正在使用Windows 7.管理员已经提升了我对本地管理员的权限,但它没有解决任何问题。

我使用资源监视器来validation是否有任何其他应用程序正在使用adb的端口,但事实并非如此。

在https://developers.google.com/chrome-developer-tools/docs/remote-debugging上 ,步骤3表示设置>高级> DevTools下的“启用USB Web调试”。 但在我的测试手机上,Chrome设置中没有“高级”类别。 我无法找出安装的chrome版本是什么。

在网络的某个地方,我看到一个建议,改变“tmp / android /”的权限,允许所有用户的读写,但在C:\ Users \ me \ AppData \ Local \ Android \ android-sdk \ temp有没有android文件夹。

所以我现在非常绝望,任何帮助都会非常感激。

谢谢

-olivier

编辑1 :我找不到“启用USB Web调试”,因为它是“android浏览器”而不是chrome(有点荒谬是)。 我不知道。 使用安装了正确chrome的另一台设备,我可以检查那里的选项,但adb在启动时仍然崩溃。

编辑2 :我猜测平台工具文件夹存在一些写问题。 所以我使用sdk管理器卸载了所有内容,删除了整个adt-bundle-windows-x86_64。 然后我把它解压缩到其他地方,在c:。 奇怪的是,当我启动SDKManager.exe时,已经将几个软件包标记为已安装:

  • 工具> Android SDK工具
  • 工具> Android SDK平台工具
  • Android 4.2.2> SDK平台
  • Android 4.2.2> ARM EABI v7a系统映像
  • 其他> Android支持库

我尝试再次卸载它们,删除文件夹,再次解压缩并重新安装,但仍然是相同的结果。 似乎不知何故,它安装错误,但拒绝正确卸载。 谁知道如何强制卸载?

编辑3 :使用set ADB_TRACE = 1后的adb start-server输出

C:\adt-bundle-windows-x86_64-20130219\sdk\platform-tools>adb start-server system/core/adb/adb.c::main():Handling commandline() system/core/adb/adb_client.c::_adb_connect():_adb_connect: host:version system/core/adb/sysdeps_win32.c::socket_loopback_client():socket_loopback_client: port 5037 type tcp => fd 100 system/core/adb/transport.c::writex():writex: fd=100 len=4: 30303063 000c system/core/adb/transport.c::writex():writex: fd=100 len=12: 686f73743a76657273696f6e host:version system/core/adb/transport.c::readx():readx: fd=100 wanted=4 system/core/adb/transport.c::readx():readx: fd=100 disconnected system/core/adb/sysdeps_win32.c::adb_close():adb_close: 100(lo-client:5037) system/core/adb/adb_client.c::adb_connect():adb_connect: service host:start-server 

尝试在启动ADB服务器之前设置环境variablesADB_TRACE以查看它是否可以提供任何线索:

  C:\Android\android-sdk\platform-tools>set ADB_TRACE=1 C:\Android\android-sdk\platform-tools>adb start-server 

请在您的问题中包含输出。

这个解决方案对我有用:

=>检查adb是否在任务管理器中运行,然后将其终止。 现在尝试通过以下方法重新启动它:

1)Shift +右键单击...\android-sdk\platform-tools文件夹,然后选择Open command window here

2)使用以下命令: adb kill-server然后是adb start-server

如果此方法不起作用,您在命令窗口中看到类似这样的内容Killing adb...

然后应用以下步骤:

3)关闭日食

4)现在在Task manager杀死javaw.exe Java(TM) Platform SE binary并再次执行步骤1和2

它肯定会奏效。 🙂

C:\ Documents and Settings \ userfoo.android中有一些与android相关的文件,卸载程序不会删除。 虽然大部分都是由AVD使用,而不是由ADB使用,但我建议您在任何“全新”安装之前删除它。

请检查您的用户权限和权限以及用户“系统”权限,因为在某些公司中,它们会被切断以防止病毒或自动攻击。

输出可以固定到传输代码:

 D("readx: fd=%d wanted=%d\n", fd, (int)len); while(len > 0) { r = adb_read(fd, p, len); if(r > 0) { len -= r; p += r; } else { if (r < 0) { D("readx: fd=%d error %d: %s\n", fd, errno, strerror(errno)); if (errno == EINTR) continue; } else { D("readx: fd=%d disconnected\n", fd); } return -1; } 

这可能意味着adb_read()返回0(EOF),而传输尝试读取下一个4.因此,看起来传输除了EOF之外无法读取任何内容,只是断开连接。 这可能是USB驱动程序问题。

尝试使用Linux,或使用root / admin权限运行命令。

尝试这个,

使用管理权限和types打开命令提示符

netsh interface tcp set global autotuninglevel = disabled

这对我有用

要解决Windows机器中的问题,请尝试以下操作:

问题:ADB停止连接附加的Android设备恶魔未运行且恶魔正在端口5037上运行

解:

首先列出在端口5037上运行的所有进程命令:netstat -ano | find上述命令的“5037”输出:TCP 127.0.0.1:52935 127.0.0.1:5037 SYN_SENT 31016 TCP 127.0.0.1:52936 127.0.0.1:5037 SYN_SENT 31016

终止在端口5037上运行的进程:命令:taskkill / F / PID 31016

运行adb kill-server输出:*服务器未运行*

运行adb start-server *守护程序未运行。 现在在tcp启动它:5037 * *守护进程成功启动*

运行adb设备为您提供设备列表

  1. 在Android SDK Manager中卸载Platform Tools
  2. 查找并删除AdbWinUsbApi.dllAdbWinApi.dlladb.exe所有副本
  3. 在Android SDK Manager中重新安装Platform Tools

我可以想到你会遇到这种行为的几种情况。

  1. (很可能)您没有将adb.exe作为特权用户运行。 即使您已设置为本地管理员,也不会使用提升的权限运行此命令。 由于默认的run-> cmd处于普通用户模式,因此这是预期的。 下面的文章介绍了如何以admin / priviledged用户身份运行命令提示符。 http://www.howtogeek.com/howto/windows-vista/run-a-command-as-administrator-from-the-windows-vista-run-box/

  2. (不太可能)您可能需要将adb.exe添加到Windows防火墙规则中。 转到“控制面板” – >“Windows防火墙”,然后单击“高级设置”。 然后,在“入站规则”和“出站规则”下,将adb.exe的规则添加为程序。

我做的是结束我的任务管理器上的adb.exe,重新启动Android Studio,然后我再次连接我的设备然后一切都很顺利:D