(This这个问题肯定与ADB is not starting (no error message)有关,但没有明确解释是什么修复了这个问题,而且一遍又一遍地重新安装也不能说服我。)
当我像往常一样
$ sudo adb kill-server && sudo adb start-server
我得控制它。
建议的adb_trace álà另一个问题产生如下结果:
# export ADB_TRACE=all
# 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/transport.c::writex():writex: fd=3 len=4: 30303063 000c
system/core/adb/transport.c::writex():writex: fd=3 len=12: 686f73743a76657273696f6e host:version
system/core/adb/transport.c::readx():readx: fd=3 wanted=4 <---- freezes here
strace稍微有点冗长,我得到了这个:
# strace /home/leo/Downloads/android-sdk-linux/platform-tools/adb start-server
... many
... many
... lines
futex(0xffab8474, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, f742a700) = -1 EAGAIN (Resource temporarily unavailable)
rt_sigaction(SIGRTMIN, {0xf77525f0, [], SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0xf7752680, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=-4286578688, rlim_max=-9223372032703125888}) = 0
uname({sys="Linux", node="donleo", ...}) = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3
connect(3, {sa_family=AF_INET, sin_port=htons(5037), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
write(3, "000c", 4) = 4
write(3, "host:version", 12) = 12
read(3, <---- freezes here
那么,接下来呢?
- 尝试解决此问题时发现的另一个问题是,通过SDK管理器更新SDK失败。它告诉我,我的Android SDK Platform-tools为16.0.2,希望更新到17。单击"安装"将永远挂起而不执行任何操作。我假设这两个操作都将无限期地等待来自同一组件的应答。[更新:]**删除组件成功了。现在安装它显示了一个问题(与更新相反,更新在日志中没有显示任何"红色"行),说停止adb不起作用。杀死adb后,更新通过了,但adb仍然拒绝工作。
- 更新:**我想我安装的adb本身可能被破坏的怀疑可以排除了。我使用手动下载的SDK,刚刚从ubuntu仓库(4.2.2 + git20130218 - 3ubuntu1)尝试了adb,它挂在完全相同的位置。
5条答案
按热度按时间baubqpgj1#
找到了。以bug report上非常有教育意义的评论的风格:
嗯......文件描述符3?
插座96863?
艾娃,什么?
grrrrr!为什么?为什么?为什么adb没有超时之类的东西?为什么traccar --一个也有Android客户端的软件--使用ADB的端口5037作为它的IntelliTrac组件?他们使用所有的端口5000到5040。
l5tcr1uw2#
谢谢你的解答。
但我试图杀死亚行进程,我可以能够重新启动亚行进程。
1)查找adb的PID
2)杀死adb过程
3)列出设备
m1m5dgzv3#
AndyOS(Android模拟器)也与ADB冲突。杀死了Andy服务,ADB重新开始工作。
lb3vh1jj4#
按照giszmo的回答,我的
adb
被阻止了,但不是被另一个程序阻止的,而是被一个IPv6套接字的connect
阻止的[这个套接字永远不会绑定]。在我的内核解决了这个问题,但可能不是一个永久的解决方案.
uxh89sit5#
我找到的一个简单的解决方案是,断开PC与互联网的连接,然后重新启动计算机。一旦系统重新启动完成,在没有互联网连接的情况下启动Android Studio。
Android Studio启动并运行后,将计算机连接到互联网。
这是唯一对我有效的解决办法。