我正在尝试运行adb。当我运行:“adb start-server”时它暂停一段时间,然后没有消息。
之后命令“adb get-state”收到答案“错误:协议错误(无状态)” 如果我运行“adb kill-server”,答案是“*服务器没有运行*”
我正在使用Windows 7.管理员已将我对本地管理员的权限提升,但它没有解决任何问题。
我使用资源监视器来验证是否有其他应用正在使用adb的端口,但事实并非如此。
<{3>} https://developers.google.com/chrome-developer-tools/docs/remote-debugging 步骤3指示设置&gt;下的“启用USB Web调试”。高级&gt; DevTools。 但在我的测试手机上,Chrome设置中没有“高级”类别。我无法找到安装的chrome版本。在网络的某个地方,我看到了一个建议,即改变“tmp / android /”的权限以允许读取&amp;为所有用户写,但在C:\ Users \ me \ AppData \ Local \ Android \ android-sdk \ temp中没有android文件夹。
所以我现在非常绝望,任何帮助都会受到极大的赞赏。
感谢
-olivier
编辑1 :我找不到“启用USB Web调试”,因为它是“android浏览器”而不是chrome(有点荒谬是)。我不知道。使用安装了正确chrome的另一台设备,我可以检查那里的选项,但adb在启动时仍然崩溃。
编辑2 :我猜测平台工具文件夹存在一些写问题。 所以我使用sdk管理器卸载了所有内容,删除了整个adt-bundle-windows-x86_64。然后我把它解压缩到其他地方,在c:。奇怪的是,当我启动SDKManager.exe时,几个软件包已经标记为已安装:
我尝试再次卸载它们,删除文件夹,再次解压缩并重新安装,但结果仍然相同。似乎不知何故,它安装错误,但拒绝正确卸载。任何人都知道如何强制放松?
编辑3 : 使用set ADB_TRACE = 1
后输出adb start-serverC:\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
答案 0 :(得分:6)
在启动ADB服务器之前尝试设置环境变量ADB_TRACE以查看它是否可以提供任何线索:
C:\Android\android-sdk\platform-tools>set ADB_TRACE=1
C:\Android\android-sdk\platform-tools>adb start-server
请在问题中包含输出。
答案 1 :(得分:6)
这个解决方案对我有用:
=&GT;检查adb是否在任务管理器中运行,然后将其终止。现在,然后尝试通过以下方法重新启动它:
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 binary
中杀死Task manager
并按照步骤1&amp; 2 再次。
一定会奏效。 :)
答案 2 :(得分:2)
要解决Windows机器中的问题,请尝试以下操作:
问题:ADB停止连接附加的Android设备 恶魔没有跑,恶魔正在5037号港口上运行
解决方案:
首先列出在端口5037上运行的所有进程 命令:netstat -ano |找到&#34; 5037&#34; 上述命令的输出: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 kill-server 输出:*服务器未运行*
运行adb start-server *守护程序没有运行。现在在tcp开始:5037 * *守护进程成功启动*
运行adb设备 给你设备列表
答案 3 :(得分:1)
在 C:\ Documents and Settings \ userfoo.android ,有一些与Android相关的文件,卸载程序不会删除。虽然大部分都是由AVD使用,而不是由ADB使用,但我建议您在任何“全新”安装之前将其删除。
请检查您的用户权限和用户“系统”权限,因为在某些公司,它们会被切断以防止病毒或自动攻击。
答案 4 :(得分: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权限运行命令。
答案 5 :(得分:1)
试试这个,
使用管理权限打开命令提示符并键入
netsh interface tcp set global autotuninglevel = disabled
这对我有用
答案 6 :(得分:1)
我认为您的计算机上正在运行另一个进程,例如Java Web服务器或Java应用程序(例如“ traccar”)。终止这些过程后,它对我有用。
答案 7 :(得分:0)
Platform Tools
AdbWinUsbApi.dll
,AdbWinApi.dll
和adb.exe
Platform Tools
答案 8 :(得分:0)
我可以想到你会遇到这种行为的几种情况。
(最有可能)您没有将adb.exe作为特权用户运行。即使您已设置为本地管理员,也不会使用提升的权限运行此命令。由于默认运行 - > cmd处于正常用户模式,因此这是预期的。下面的文章介绍了如何以admin / priviledged用户身份运行命令提示符。 http://www.howtogeek.com/howto/windows-vista/run-a-command-as-administrator-from-the-windows-vista-run-box/
(不太可能)您可能需要将adb.exe添加到Windows防火墙规则中。转到控制面板 - &gt; Windows防火墙,然后单击“高级设置”。然后,在“入站规则”和“出站规则”下,将adb.exe规则添加为程序。
答案 9 :(得分:0)
我做的是在我的任务管理器上结束adb.exe,重新启动Android Studio然后再次连接我的设备然后一切都很顺利:D
答案 10 :(得分:0)
我在运行Java应用程序'traccar'时有相同的想法,它在杀死了该进程后对我有用