【问题标题】:Adb won't startadb 启动不了
【发布时间】:2011-01-19 08:44:10
【问题描述】:

正在运行 Vista,尝试以管理员身份从 shell 启动 adb 得到守护进程现在无法启动它

ADB server didn't ACK
* failed to start daemon *

对此有什么帮助吗?

【问题讨论】:

标签: android adb


【解决方案1】:

这个问题困扰了我很久。除了上述答案,请使用以下提示:

  • 使用以下命令创建一个 bat 文件并运行它。此 bat 文件将解决您的大部分 adb 问题。

tskill 亚行

cd \tools\

adb kill-server

adb 启动服务器

ddms

  • 使用命令netstat监控连接状态(adb使用5037)

  • 如果 bat 文件不起作用,请尝试:disconnect-reboot phone-connect。 (提示:如果 adb 完全响应,则使用 `adb reboot',如果没有,则使用老式方法)

  • 有时 Windows 可能很有趣。重新启动机器。

  • 开启 USB 调试模式

    • 下载 Android SDK 并解压
    • 从设备管理器中卸载所有“Android *”
    • 从控制面板执行“添加硬件”,选择“安装硬件... (高级)”
    • 选择“Android USB 设备”并点击“下一步”
    • 点击“从磁盘安装”,输入SDK解压的路径
  • 仍然无法正常工作?将手机恢复出厂设置。

  • MTP 检测延迟 ADB。有时,如果需要启动时间日志,您可能必须在设备管理器 (Windows) 中禁用 MTP 驱动程序


This is a brilliant patch for adb 当您收到错误消息时:

adb连接错误:一个现有的连接被远程“强行关闭”

【讨论】:

  • 由于您现在是投票最多的答案,您可能会考虑改写第二句话或包含其他答案中的信息...
  • @Jeff ADB 现在基本稳定,尤其是在 Android M 之后。请随时建议对这篇文章进行修改。
【解决方案2】:

我无法使用 adb。我在命令行和eclipse中都收到了以下错误。

* daemon not running. starting it now on port 5037 *
ADB server didn't ACK<br>
* failed to start daemon *

也就是说,adb start-server 即使在重新启动后也失败了。为了诊断问题,我发现您可以使用以下参数运行 adb:

adb nodaemon server

它会打印出它无法运行的原因。在我的例子中,它是 adb_usb.ini 文件中的一个空行。

【讨论】:

  • 有趣的是,我看到了完全不同的东西:这个过程也挂了。
  • adb nodaemon server 成功了。我的问题和你的一样。 adb_usb.ini中的空行
  • adb_usb.ini 中的空白行也是我的原因。
  • Me 2 也有同样的问题,adb_usb.ini 中有空行
  • 也出现“无法绑定 tcp:5037”错误 - 如果您使用 Genymotion,此链接可能会有所帮助:stackoverflow.com/questions/26431972/…
【解决方案3】:

您的内存中可能有一个 adb 守护程序的副本。尝试使用任务管理器将其删除,或重新启动,看看是否有帮助。

【讨论】:

  • 感谢您的建议,但没有帮助。
  • @CommonsWare:这没有帮助
  • 当我退出它时,它似乎产生了一个新的 adb 进程。
【解决方案4】:

适用于使用 Android Studio 和 MAC 的用户。这对我有用:

  1. 在 Android Studio 中:工具 -> Android -> 取消选中“启用 ADB 集成”
  2. 在终端:“adb kill-server”
  3. 在 Android Studio 中:工具 -> Android -> 勾选“启用 ADB 集成”
  4. 在终端:“adb start-server”

【讨论】:

    【解决方案5】:

    最佳答案是特定于 Windows 的,但这具有相当多的 Google 可见性,因此如果您运行的是类似 *nix 的机器(我在 Mac 上),步骤类似:

    $ killall adb
    $ cd <PATH_TO_SDK>/platform-tools/
    $ adb kill-server
    $ adb start-server
    

    或者,如果你和我一样,只想访问 adb,不管你当前的目录是什么,添加

    export PATH=${PATH}:<PATH_TO_SDK>/platform-tools/
    

    致您的~/.bash_profile

    【讨论】:

      【解决方案6】:

      &gt; killall adb

      &gt; adb start-server

      重启 Eclipse。

      基本上 adb 正在您机器上的另一个进程上运行,您需要杀死它,然后再次启动守护程序,因为它们都试图绑定到同一个端口 (:5037)。就我而言,我打开了另一个窗口:5037,然后忘记了它。想知道为什么我不能像往常一样停下来开始。通过“killall”,您可以确保终止所有进程。您还可以进入 CPU 的进程并强制退出。

      【讨论】:

      • 值得注意的是,您必须先退出 Eclipse 并关闭所有模拟器/genymotion 实例。为我工作。
      【解决方案7】:

      1.$ apt-get remove android-tools-adb

      2.$ cd $PATH_TO_SDK/platform-tools/

      3.$ ./adb 设备

      你会看到这样的:

      • 守护程序未运行。现在在端口 5037 上启动它 * 无法绑定 'tcp:5037' ADB 服务器没有确认 * 无法启动守护进程 *

      那显示什么错误。

      现在你重置你的电脑,它会很好。

      或者

      # lsof -i:5037
      
      COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
      
      wineserve 3609 root 268u IPv4 20118 0t0 TCP localhost:5037 (LISTEN)
      
      # 
      

      您将知道哪些软件使用该端口。

      【讨论】:

        【解决方案8】:

        为避免这种情况,只需更改 host_config.xml 中的以下值:

        <!-- Number of tests executed between reboots. A value <= 0 disables reboots. -->
        <IntValue name="maxTestCount" value="10000" />
        <!-- Max size [tests] for a package to be run in batch mode. -->
        <IntValue name="maxTestsInBatchMode" value="100000" />
        
        <!-- Max time [ms] between test status updates. -->
        <IntValue name="testStatusTimeoutMs" value="600000" />
        

        【讨论】:

          【解决方案9】:
          adb nodaemon server
          

          帮助。在我的例子中,我编辑了 ~/.android/adb_usb.ini,并在末尾添加了 0x1949 以在 Kindle Fire 上启用调试。可悲的是,它无法处理我在 0x1949 之后输入的换行符

          【讨论】:

          • +1 表示 adb_usb.ini 中的额外换行符。这就是我的原因。
          【解决方案10】:

          我遇到了同样的问题。我不正确地编辑了我的 adb_usb.ini 文件(我在文件末尾有两个回车符......是的,这很难找到。)

          此文件位于类似于 /Users/{user-name}/.android/adb_usb.ini 的位置

          (将 {user-name} 替换为您自己的用户名)

          确保文件完全读取(前后没有空格/回车/换行符):

          '#ANDROID 3RD PARTY USB 供应商 ID 列表 -- 请勿编辑。"
          '# 使用 'android update adb' 来生成。"
          '# 每行 1 个 USB 供应商 ID。"

          (重要!!!实际文件中没有 '(撇号),这是我发布此内容的唯一方法,而不会将 # 解释为 BOLD)。


          希望对某人有所帮助

          【讨论】:

            【解决方案11】:

            如果您使用的是 Android Studio,如果

            • 您已打开“设备选择器”对话框
            • 您尝试从命令行运行“adb devices”

            每次都会导致以下错误

            adb server is out of date.  killing...
            cannot bind 'tcp:5037'
            ADB server didn't ACK
            * failed to start daemon *
            error:
            

            解决方案(简单快捷)

            关闭“设备选择器”对话框。我的猜测是它试图以一种非常密集的方式接管 adb 连接

            【讨论】:

              【解决方案12】:

              我在使用 Genymotion 时遇到了这个问题,所以我将它的 adb 替换为我当前的 adb。供参考:

              cd $GENYMOTION_HOME\tools
              mv adb adb-old
              ln -s $ANDROID_SDK\platform-tools\adb adb
              

              【讨论】:

                【解决方案13】:

                还有另一种可能。如果您安装了任何权限管理器,例如 Advanced android 权限管理器,adb 可能会失败。这是我的情况。卸载了应用程序,然后没有问题。

                【讨论】:

                  【解决方案14】:

                  好像是一样的, 但有时,命令 adb kill-server 无效(至少在我的情况下)。 所以,我尝试了其他方式。

                  你可以这样查看:https://stackoverflow.com/a/34627522/5597864

                  【讨论】:

                    【解决方案15】:

                    在控制台中,尝试:

                    taskkill /F /T /IM adb.exe
                    

                    重复多次,直到显示ERROR: The process "adb.exe" not found. 那么

                    adb devices
                    

                    【讨论】:

                      【解决方案16】:

                      adb 服务器没有运行。您可以在 Windows 中打开命令行窗口查看哪个进程正在使用 5037 端口,记住进程号。

                      netstat -ano |findstr "5037"
                      

                      然后使用Ctrl+alt+delete打开进程管理器,杀死占有5037端口的进程。您可能需要多次尝试,直到 5037 端口可以免费使用。

                      【讨论】:

                        【解决方案17】:

                        打开命令 浏览您的 adb.exe 文件所在的位置 通过命令进入文件 adb 杀死服务器 adb 启动服务器

                        【讨论】:

                          【解决方案18】:

                          当它还说adb server is out of date. killing... 它会为你杀死它。 问题是它一旦被杀死就会重新启动。

                          因此,您应该考虑在任何可能的地方找到adb.exe。 最简单的方法是打开一个Task Manager,找到一个adb.exe 进程 -> RMB -> Open file location -> 从那里删除它。除非不需要它,否则在这种情况下您应该更新它。 就我而言,它位于 C:\Windows\ 中,并与他们的 Visual Studio 一起提供。

                          【讨论】:

                            【解决方案19】:

                            如果您收到错误 cannot bind 'tcp:5037' 并且您使用的是任何 Linux 发行版,例如 Ubuntu,

                            杀死旧的 ADB 进程:

                            fuser -n tcp -k 5037
                            

                            这将杀死端口 5037 处的 adb 进程,然后,

                            启动亚行:

                            adb start-server
                            

                            【讨论】:

                              【解决方案20】:

                              通常这里给出的答案对我有用,但今天却没有。通过从 SDK 管理器将模拟器和 SDK 更新到最新版本,我的问题得到了解决。

                              【讨论】:

                                【解决方案21】:

                                在 Mac 或 Unix 上

                                对于那些使用 Mac 或 Unix 来到这里的人,以下内容对我有用:

                                adb kill-server
                                adb server
                                

                                【讨论】:

                                  猜你喜欢
                                  • 1970-01-01
                                  • 1970-01-01
                                  • 1970-01-01
                                  • 1970-01-01
                                  • 1970-01-01
                                  • 2017-06-06
                                  • 2018-05-17
                                  • 2021-02-03
                                  相关资源
                                  最近更新 更多