12

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

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

我正在使用 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 中有没有安卓文件夹。

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

谢谢

-奥利维尔

编辑 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
4

11 回答 11

7

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

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

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

于 2013-04-01T00:37:14.743 回答
7

这个解决方案对我有用:

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

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

2)使用这些命令: adb kill-server然后adb start-server

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

然后应用以下步骤:

3) 关闭日食

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

它肯定会奏效。:)

于 2015-01-07T14:00:08.213 回答
6

要解决 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 kill-server adb start-server

预期输出:

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

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

于 2017-07-26T04:52:22.873 回答
1

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

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

于 2013-04-03T15:43:50.257 回答
1

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

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

于 2013-04-05T17:32:38.073 回答
1

试试这个,

打开具有管理权限的命令提示符并键入

netsh interface tcp set global autotuninglevel=disabled

这对我有用

于 2013-10-29T11:20:05.433 回答
1

我在运行java应用程序'traccar'时也有同样的情况,它在杀死这个进程后对我有用

于 2019-12-31T11:04:40.700 回答
1

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

于 2020-07-03T19:13:19.240 回答
0
  1. Platform Tools在 Android SDK 管理器中卸载
  2. 查找并删除和AdbWinUsbApi.dll的所有副本AdbWinApi.dlladb.exe
  3. Platform Tools在 Android SDK Manager 中重新安装
于 2013-03-27T17:20:44.590 回答
0

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

  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 的规则添加为程序。

于 2013-04-05T16:11:18.180 回答
0

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

于 2016-04-16T14:36:59.897 回答