【问题标题】:ADB is not starting (no error message)ADB 未启动(无错误消息)
【发布时间】:2013-03-27 15:41:41
【问题描述】:

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

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

我使用的是 Windows 7。管理员已将我的权限提升为本地管理员,但它没有解决任何问题。

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

https://developers.google.com/chrome-developer-tools/docs/remote-debugging 第 3 步表示“设置”>“高级”>“开发工具”下的“启用 USB Web 调试”。 但在我的测试手机上,chrome 设置中没有“高级”类别。我也找不到安装的 chrome 版本。

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

所以我现在很绝望,任何帮助将不胜感激。

谢谢

-奥利维尔

编辑 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 系统映像
  • Extras>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 进程。有时我有一个“atra”亚行进程,它给我带来了类似的问题。我通过终止这个进程来解决这个问题。然后做adb start-server
  • 当我运行 adb start-server 时,当命令挂起时,adb.exe 进程出现了。但是当我把光标移回来时,这个过程同时消失了。所以不存在幻象进程。
  • 这个问题太老了,可能对任何人都没有用了
  • 不要使用这个,它现在已经过时了。

标签: android windows adb


【解决方案1】:

在启动ADB服务器之前尝试设置环境变量ADB_TRACE,看看能不能提供线索:

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

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

【讨论】:

  • 嗯..你见过* daemon not running. starting it now on port 5037 ** daemon started successfully *消息吗?
  • 您的输出似乎表明程序能够连接到该 tcp 端口(意味着某些东西正在运行?)但之后断开连接。
  • 是的 adb 正在启动,然后崩溃而没有错误消息。我运行了 netstat -ano |找到 ":5037" /c 并输出 0。因此没有其他应用程序正在使用该端口。我还使用三星 Galaxy 选项卡更换了设备。它在 Windows 设备管理器中正确显示为 GT-P7511。它在 chrome 设置中具有“启用 USB 调试”功能,并且在常规设置中连接后具有 USB 调试功能。那么我还应该检查什么?如果罪魁祸首不是设备/驱动程序。那么是操作系统吗? adb 在 win 7 上是否经过良好测试?
  • 如果可能的话,也许请您的管理员登录到您的计算机,如果我们尝试在他登录的情况下运行它,看看它是否有效。如果仍然无效,可能要求他禁用任何安全软件也。不确定以管理员身份登录时要求他重新安装 SDK 是否有帮助。
  • 虽然我很高兴您的“以这种方式调试”帮助 OP 解决了他的问题,但您的“答案”并不是真正的答案,因此我认为这值得进一步调查,因为我相信我有完全相同的问题。如果您倾向于解决此问题的原因,也许您可​​以在这里查看我的问题:stackoverflow.com/questions/17116121/…
【解决方案2】:

这个解决方案对我有用:

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

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

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

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

然后应用以下步骤:

3) 关闭eclipse

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

它肯定会奏效。 :)

【讨论】:

    【解决方案3】:

    要解决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 服务器 adb 杀死服务器 adb 启动服务器

    预期输出:

    * daemon not running. starting it now at tcp:5037 *
    * daemon started successfully *
    

    输入 adb devices 将为您提供连接到 adb 服务器的设备列表

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

      • 所以我确实删除了那个文件夹。我也在winXP兼容模式下进行了安装。我在 android.bat 中更改: for /f %%a in ('%java_exe% -jar C:\adt-bundle-windows-x86_64-20130219\sdk\tools\lib\archquery.jar') 设置 swt_path=lib \%%a 以确保路径正确。重启后,adb 就可以启动了。很高兴。然后我运行 adb forward tcp:9222 localabstract:chrome_devtools_remote 并转到localhost:9222。我收到“错误 324 (net::ERR_EMPTY_RESPONSE)”...(平板电脑常规设置和平板电脑 chrome 都设置了启用 USB 设置...)
      • 此时,您应该安装驱动程序的特定驱动程序,而不是windows驱动程序。我必须为 Samsung Galaxy、HTC 和 Acer 驱动程序安装特定的驱动程序,每个驱动程序都不同,而我没有为 Nexus 安装过
      • 好的,我尝试使用三星 Galaxy 并安装了最新的驱动程序。再次出现错误 324。然后我尝试使用 Nexus 并获得相同的结果。我注意到在设备管理器中,nexus 出现了两次。作为移动设备和“其他设备”,并在此处标有黄色感叹号,表示存在问题。
      • 使用 Galaxy 我必须安装“kies”软件,即驱动程序。我敢肯定,对于宏碁平板电脑,我需要将 USB 连接置于“相机模式”,而不是在海量存储中,我认为在三星中也是如此。在“相机模式”和“大容量存储模式”这两种情况下,计算机都会检测到您的平板电脑,但它使用不同的驱动程序,因此其中一个与 ADB 交互,而另一个不与。
      • 请先尝试使用不同的 USB 配置文件。 kies 是三星的 iTunes,它只是降低了旅游电脑的速度,没有任何有价值的功能......但它安装了 TVE 正确的驱动程序......
      【解决方案5】:

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

      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 权限运行命令。

      【讨论】:

      • 我确实以本地管理员身份运行了该命令。是的,我也会尝试使用 MacBook,无论如何我都需要它来在 iOS/safari 上进行调试,但如果我不能让它在 pc 上工作,那就太令人失望了。作为对 Ger Soto 的回答,我会看看驱动程序 (kies),但奇怪的是它也不适用于 nexus。
      • Nexus 使用 Google Driver ...我尝试了很多设备,Nexus 是最好的,首先,对于 android 的原生采用,其次,因为它没有问题,第三,它的“第一”和“永远更新”的期望
      【解决方案6】:

      试试这个,

      使用管理权限打开命令提示符并键入

      netsh interface tcp set global autotuninglevel=disabled

      这对我有用

      【讨论】:

      • 谢谢,但那是 7 个月前的事了。据我记得,我通过更换设备解决了这个问题。我无法判断您的答案是否正确,但它可能对某人有所帮助。
      【解决方案7】:

      我在运行 java 应用程序 'traccar' 时也遇到了同样的问题,杀死这个进程后它对我有用

      【讨论】:

        【解决方案8】:

        我认为另一个进程,如 java web 服务器或 java 应用程序,如“traccar”,正在你的机器上运行。杀死这些进程后它对我有用。

        【讨论】:

          【解决方案9】:
          1. 在 Android SDK 管理器中卸载 Platform Tools
          2. 查找并删除AdbWinUsbApi.dllAdbWinApi.dlladb.exe 的所有副本
          3. 在 Android SDK 管理器中重新安装 Platform Tools

          【讨论】:

          • 我试过了,但现在我得到“无法启动应用程序,因为缺少 AdbWinApi.dll”(翻译成英文)。我不知道是否重要,但在重新安装期间我得到“停止 ADB 服务器失败(代码 -1)”
          • 需要将带有AdbWinUsbApi.dll、AdbWinApi.dll和adb.exe的文件夹添加到PATH环境变量中
          • 明天我回来工作后,我会检查我是否做得正确。但是如果我做错了,那么我认为使用命令 adb start-server 时 adb.exe 进程不会启动。不会吗?
          【解决方案10】:

          我可以想到几种您会遇到这种行为的场景。

          1. (很可能)您没有以特权用户身份运行 adb.exe。即使您设置为本地管理员,您也不会以提升的权限运行此命令。由于默认的 run->cmd 处于正常用户模式,因此这是意料之中的。以下文章说明了如何以管理员/特权用户身份运行命令提示符。 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 的规则添加为程序。

          【讨论】:

          • 我在 msdos 邀请快捷方式中右键单击以管理员身份运行。关于防火墙,我会检查的。我还安装了某种防病毒软件,它被命名为 forticlient。我会在那个星期一回来工作的时候看看。谢谢。
          • 是的,显然作为本地管理员是不够的,我在 sysadmin 会话下进行了安装,并添加了 kies,这使我可以远程调试三星平板电脑。
          【解决方案11】:

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

          【讨论】:

            猜你喜欢
            • 2017-08-13
            • 2014-11-22
            • 2018-02-07
            • 2021-06-21
            • 1970-01-01
            • 2017-09-07
            • 1970-01-01
            • 1970-01-01
            • 2012-04-11
            相关资源
            最近更新 更多