android adb启动不了
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
正常應(yīng)該是這樣的
我們看下源碼
這里我們看到兩個分支, if(fd==-2){
//根據(jù)注釋? 以前還沒啟動過服務(wù) 就走這個分支
}else{
當前進程已經(jīng)有這個服務(wù)在運行就走這個分支
}
根據(jù)上面的打印的日志 很明顯群里的這位朋友已經(jīng)執(zhí)行了這個服務(wù),因為它走進了第二個分支。
但是他在任務(wù)管理器中又找不到adb服務(wù)。
我們來看下android是怎么判斷服務(wù)已經(jīng)在進程中的。即什么情況下int _adb_connect(const char *service)返回-2.
只有當fd<0時才會返回-2. ?即fd = socket_loopback_client(__adb_server_port, SOCK_STREAM);創(chuàng)建失敗
傳入兩個參數(shù)分別為端口號和TCP類型的一個常量。adb是面向連接的,所以SOCK_STREAM是不變的常量,能導(dǎo)致函數(shù)調(diào)用失敗的
必然是因為我們傳入了一個不適合的值,這個值只能是端口號。由程序知? __adb_server_port=5037.
?
得出結(jié)論 5037端口號被其它程序占用了(只能是占用,我想不出還有其它可能)。
然后就簡單了
dos窗口運行
找到占用5037端口號的進程
獲取調(diào)用進程的程序,我這里就是adb程序。然后在任務(wù)管理器中殺死該進程就不會出現(xiàn)adb無法啟動了。
轉(zhuǎn)載于:https://my.oschina.net/u/1182603/blog/155792
總結(jié)
以上是生活随笔為你收集整理的android adb启动不了的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 双击设置访问控制,
- 下一篇: POJ 1703 Find them,