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