最近遇到一次adb啟動不起來的情況,報錯信息:
1.在輸入"adb devices" 或 "adb shell"時提示:
List of devices attached
- daemon not running. starting it now at tcp:5037 *
adb E 03-31 09:30:26 2350 95705 usb_osx.cpp:333] Could not open interface: e00002c5
adb E 03-31 09:30:26 2350 95705 usb_osx.cpp:294] Could not find device interface
error: could not install smartsocket listener: Address already in use
ADB server didn't ACK - failed to start daemon *
error: cannot connect to daemon
2.于是我嘗試“adb kill-server”來重啟adb
ulucudeMacBook-Pro:~ ulucu$ adb kill-server
- server not running *
居然adb都沒有起來?
3.于是用“Then run "lsof -i tcp:5037"”找一找是不是端口占用的問題:
ulucudeMacBook-Pro:~ ulucu$ lsof -i tcp:5037
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
adb 2308 ulucu 7u IPv4 0x440443a862048a7b 0t0 TCP localhost:5037 (LISTEN)
發(fā)現(xiàn)是有的
4.運行“kill 2308”把進程殺掉,再運行“adb devices”
- daemon not running. starting it now at tcp:5037 *
- daemon started successfully *
** daemon still not running
error: cannot connect to daemon at tcp:5037: Undefined error: 0
無果。
5.于是上google搜索,發(fā)現(xiàn)網(wǎng)上很多在說是genymotion沒有使用android studio的sdk,修改后也無效
6.后來搜索“error: cannot connect to daemon at tcp:5037: Undefined error: 0”這一句發(fā)現(xiàn)
https://stackoverflow.com/questions/43131020/adb-cannot-connect-to-daemon-at-tcp5037
打開sdk目錄/platform-tools/source.properties文件,發(fā)現(xiàn)版本剛好是文中的25.0.4
于是重新下載platform-tools文件夾覆蓋即可。
這個問題其實自己google了半天,但是卻總是查出無效重復(fù)的結(jié)果,原因在于沒有很好的思路:
1.應(yīng)該還原工作環(huán)境到最干凈的狀態(tài),重啟電腦并關(guān)閉其他無關(guān)的軟件
2.注意搜索關(guān)鍵字,在重啟電腦第一次adb start-server的時候是有輸出Daemon
start sucessfully的,只是沒有connect上,從第二次開始就都是一樣的報錯了
3.注意到第一次start-server的時候輸出的error: cannot connect to daemon at tcp:5037: Undefined error: 0 報錯信息,搜索該句關(guān)鍵字并在stackoverflow上找到對應(yīng)的問題