这个时候我使用 adb devices 设备展示正常,但是我 adb shell 始终卡住没有出现 $ 或者 #
之前华为手机有出现过,原因是有某个进程一直占用着 adb 连接,当时我这个进程是 atx 的第三方输入法。
你试下关掉 usb 调试再打开,问题是不是会解决?
你好,我在出现上面情况后,执行 adb kill-server adb start-sever
adb devices 列表机器全变成 offline 了,多次 adb kill-server adb start-sever 均无法恢复,物理插拔手机后,adb devices 和 adb shell 均恢复了
我查看了 adb 5037 端口,出问题的时候,有几个链接是 time_wait。这种情况可能是机器的问题吗,我这边测试的是定制的安卓设备
adb 13218 hiar 4u IPv4 0x7a8889592551533d 0t0 TCP localhost:5037->localhost:53542 (ESTABLISHED)
adb 13218 hiar 10u IPv4 0x7a8889592552ed65 0t0 TCP localhost:5037 (LISTEN)
adb 13218 hiar 12u IPv4 0x7a8889592567b02d 0t0 TCP localhost:5037->localhost:53548 (ESTABLISHED)
adb 13218 hiar 13u IPv4 0x7a888959255171b5 0t0 TCP localhost:5037->localhost:53770 (ESTABLISHED)
adb 13218 hiar 16u IPv4 0x7a8889592550678d 0t0 TCP localhost:5037->localhost:53754 (ESTABLISHED)
adb 16902 hiar 3u IPv4 0x7a888959256271b5 0t0 TCP localhost:53542->localhost:5037 (ESTABLISHED)
adb 16907 hiar 3u IPv4 0x7a8889591fdbe47d 0t0 TCP localhost:53548->localhost:5037 (ESTABLISHED)
adb 16997 hiar 3u IPv4 0x7a88895925504915 0t0 TCP localhost:53754->localhost:5037 (ESTABLISHED)
adb 17020 hiar 3u IPv4 0x7a888959256b8eed 0t0 TCP localhost:53770->localhost:5037 (ESTABLISHED)
adb shell 背后不仅需要走电脑端的 server ,还要走手机端的 adb daemon 。看你这个情况应该是手机端 daemon 有问题卡住了,电脑端 server 没问题。
你先按我说的,通过手机上的 开发者选项-usb 调试 的开关,重启 adb daemon 试试?
好的,谢谢!我们设备貌似没有开发者选项-usb 调试 ,我在 am 启动了 com.android.settings,没找到这个选项。我再找找,找到关一下。
这个问题是偶现的,有的时候跑几天都不会出现
不过这个问题不好定位,因为出问题的时候 adbd 已经 gg 了,你 shell 都进不去,更别说看 ps 进程数据了。
可以用个笨方法,参照 https://groups.google.com/g/android-platform/c/M7gPNtvTHIw?pli=1 打开 adbd 的日志输出,然后持续抓 logcat ,直到挂掉,再分析 logcat 里面和 adb 有关的日志。
为避免你打不开,我把关键内容也拷过来了:
Maybe you can try this and look then
whether you can see any adbd traces in logcat ?
( redirect stdio printf output to logcat,
but i can be a little bit noisy .. means
you need a apropriate filter )
$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start
Good luck !
Frank
不过我自己没测试过,你可以试试。
今天早上抓到一条日志,logcat 是跑在设备里的,看上去设备上的 adbd 收到了 appium start 应用的请求,为啥会 FUNCTIONS_DISABLED or USB plug out 呢
12-03 09:13:56.426 I/adbd ( 6073): Tianyuan Current sh name:am start -W -n com.xxxx.settings/com.xxxx.settings.Settings -S
12-03 09:13:56.448 I/adbd ( 6073): Tianyuan FUNCTIONS_DISABLED or USB plug out,Do not submit the write request