adb error (error: protocol fault (couldn't read status): Invalid argument)

adb error (error: protocol fault (couldn't read status): Invalid argument)

我无法使用 adb 连接到我的 phone。 我收到以下错误:

D:\softwares\Development\Android\android-sdk-windows\platform-tools>adb devices -l
List of devices attached
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
error: protocol fault (couldn't read status): Invalid argument

http://s18.postimg.org/7fdc8w9dl/screenshot_97.png

以前我在 windows 8.1 中收到此错误,然后我安装了 windows 10 并解决了错误,但现在我又无法将我的手机 phone 与 adb 连接:( .

即使没有连接任何设备,我也会收到此错误。

Eclipse 错误:

[2015-10-24 13:25:02 - ddms] Failed to initialize Monitor Thread: Unable to establish loopback connection
[2015-10-24 13:25:02 - adb] error: protocol fault (couldn't read status): Invalid argument
[2015-10-24 13:25:02 - ddms] 'D:\softwares\Development\Android\android-sdk-windows\platform-tools\adb.exe,start-server' failed -- run manually if necessary

更新: 甚至 adb tcp 也无法正常工作,所以我认为这不是驱动程序问题。

亚行跟踪 http://s24.postimg.org/mtfdwf3id/screenshot_99.png

正如您可能在 ADB 的源代码中发现的那样,引发了此错误:

     if (!ReadFdExactly(fd, buf, 4)) {
         *error = perror_str("protocol fault (couldn't read status)");
         return false;
     }

尝试导出 export ADB_TRACE=all

然后重新运行 adb devices

有了这个 env 变量,您将看到更多信息

只需重新启动 PC,一切都意味着 Android Studio 和您的 android 设备 它对我有用

None 提到的解决方案有效,windows 似乎有问题,最后我最终重置了我的 windows 10 并解决了问题。

就我而言:

adb kill-server
adb start-server

:)

简单修复,重新启动计算机并re-try :)

运行 adb.exe 然后再次尝试使用此命令我的 asus max pro m1 设备在执行此操作后遇到了同样的问题

我也遇到了这个错误,所以我是这样解决的。我杀死了adb进程并重新开始。

步骤:

  1. 打开任务管理器 (Windows);
    • 您可以按 Ctrl+Shift+Esc 将打开任务管理器。
  2. 找到adb.exe并右击它。单击“结束进程”菜单项;
  3. 打开命令提示符并键入 adb start-server,它将再次启动 adb。

在您的任务管理器中, 找到 adb.exe > 右键单击​​并结束进程。

我这样解决了..

您可以通过以下方式获取更多信息:

export ADB_TRACE=all

这给了我连接时的完整日志:

adb D 12-15 11:48:11  1014 18521 adb_trace.cpp:187] Android Debug Bridge version 1.0.41
adb D 12-15 11:48:11  1014 18521 adb_trace.cpp:187] Version 30.0.2-6538114
adb D 12-15 11:48:11  1013 18519 adb_client.cpp:155] _adb_connect: host:connect:192.168.1.109
adb D 12-15 11:48:11  1013 18519 adb_io.cpp:107] writex: fd=3 len=30 30303161686f73743a636f6e6e656374 001ahost:connect [truncated]
adb D 12-15 11:48:11  1013 18519 adb_io.cpp:81] readx: fd=3 wanted=4
adb D 12-15 11:48:11  1013 18519 adb_io.cpp:97] readx: fd=3 wanted=4 got=4 4f4b4159 OKAY
adb D 12-15 11:48:11  1013 18519 adb_client.cpp:189] _adb_connect: return fd 3
adb D 12-15 11:48:11  1013 18519 adb_client.cpp:364] adb_connect: return fd 3
adb D 12-15 11:48:11  1013 18519 adb_io.cpp:81] readx: fd=3 wanted=4
adb D 12-15 11:48:11  1013 18519 adb_io.cpp:91] readx: fd=3 disconnected
error: protocol fault (couldn't read status length): Undefined error: 0

我通过 Android Studio 中的 SDK 管理器更新我的平台工具解决了这个问题。

$ adb --version
Android Debug Bridge version 1.0.41
Version 30.0.5-6877874

虽然与 OP 的错误不完全相同,但我在 Windows:

中遇到了类似的错误
❯ adb.exe start-server
error: protocol fault (couldn't read status): No error

此错误与我的端口代理有关。似乎我设置了一些规则导致 adb client/server 无法相互通信。

我能够通过重置我的端口代理设置来解决这个问题:

netsh interface portproxy reset

现在我可以启动 adb 服务器了:

❯ adb.exe start-server
* daemon not running; starting now at tcp:5037
* daemon started successfully

从 Android Studio 卸载并重新安装 ADB 并检查您的路径以确保您没有指向任何其他 ADB 安装。

我没有其他安装,但由于某种原因,我的 ADB 实例已损坏 (v 1.0.41)。

我转到首选项 >> Android SDK >> 取消选中已安装的版本 >> 单击下一步卸载。

然后我返回并重新选中复选框以再次安装它并且它起作用了。还是版本1.0.41

请参阅 my answer here,对我来说 adb 端口 5037 正在使用,终止使用该端口的进程可解决问题。

我在更新 android studio 后遇到了类似的问题。

None 上述解决方案有效。

https://developer.android.com/studio/releases/platform-tools

我从上面link下载platform-tools解决了。并将我的 android SDK platform-tools 的内容替换为下载的