【问题标题】:adb error (error: protocol fault (couldn't read status): Invalid argument)adb 错误(错误:协议错误(无法读取状态):无效参数)
【发布时间】:2022-04-12 22:52:57
【问题描述】:

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

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 并解决了错误,但现在我再次无法将我的手机与 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

【问题讨论】:

  • 正确重新安装您的设备驱动程序。这可能会解决这个问题。
  • 即使没有连接设备我也会收到此错误我不认为它是驱动程序问题
  • 尝试运行模拟器并运行命令,如果相同则不是设备,它是您的软件或其他东西
  • 它也不适用于模拟器/Genymotion

标签: android adb


【解决方案1】:

提到的解决方案都不起作用,Windows 似乎有问题,最后我最终重置了我的 Windows 10 并解决了问题。

【讨论】:

    【解决方案2】:

    就我而言:

    adb kill-server
    adb start-server
    

    :)

    【讨论】:

    • 欢迎来到 Stack Overflow。虽然这些命令可能会回答问题,但提供有关此代码回答问题的原因和/或方式的附加上下文会提高其长期价值。How to Answer
    • 这对我来说已经足够了,干得好,欢迎 :)
    • 这并不总是有效,如果发生这种情况,它有时会发出“错误:无法读取服务器的响应”,需要重新启动。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      您可能在 ADB 的源代码中发现,出现了这个错误:

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

      尝试导出 export ADB_TRACE=all

      然后重新运行adb devices

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

      【讨论】:

      • 如何导出 ADB_TRACE ?我正在使用窗户
      • @H4SN set ADB_TRACE=all
      • 我需要在哪里设置 ADB_TRACE-all ?
      • @H4SN 在cmd(控制台)中运行adb之前
      • 你必须输入 '=' 而不是减号
      【解决方案5】:

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

      为我解决了这个问题..

      【讨论】:

        【解决方案6】:

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

        步骤:

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

        【讨论】:

        • Excelente, funcionó de maravilla, nada de reiniciar PC, Gracias
        • 这不是一个解决方案,即使它在某些情况下可能有效。它不能解决问题首先发生的原因。这只是一个简单的重试。
        • 这是一个解决方案,因为解释为什么会发生这种情况。另一个 adb 进程在僵尸模式下运行,需要杀死
        【解决方案7】:

        虽然与 OP 的错误不完全相同,但我在 Windows 中遇到了类似的错误:

        ❯ adb.exe start-server
        error: protocol fault (couldn't read status): No error
        

        此错误与我的端口代理有关。看来我设置了一些规则,导致 adb 客户端/服务器无法相互通信。

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

        netsh interface portproxy reset
        

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

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

        【讨论】:

          【解决方案8】:

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

          【讨论】:

            【解决方案9】:

            简单修复,重新启动计算机并重试 :)

            【讨论】:

              【解决方案10】:

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

              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
              

              【讨论】:

                【解决方案11】:

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

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

                我去了首选项>> Android SDK>>取消选中已安装的版本>>点击旁边卸载。

                然后我返回并重新选中该框以再次安装它并且它起作用了。静止版1.0.41

                【讨论】:

                  【解决方案12】:

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

                  以上解决方案均无效。

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

                  我通过从上面的链接下载platform-tools 解决了这个问题。并用下载的替换了我的android SDK平台工具的内容

                  【讨论】:

                    【解决方案13】:

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

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 2016-10-31
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2021-09-23
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多