今天要搞一個安卓的項目。由于電腦系統是年前剛剛重裝的,系統里啥都沒有,于是臨時安裝了一下android studio 2.2,然后又裝了一個夜神模擬器。工程打開后,編譯通過了,于是打開夜神模擬器,想要通過模擬器進行模擬時,結果AS一直提示找不到模擬器。
于是只好重啟AS,重啟模擬器。結果還是不行。再次重啟,貌似可以了。但是,下午再次重啟之后,又不行了。反反復復折騰了好幾次,基本沒幾次能順利連接到模擬器的,每次都要折騰很久。好不容易晚上有點空了,于是靜下心來自己研究了一下,看看到底是誰在搗鬼。
1、關掉AS和模擬器,全部重新打開。打開順序沒有要求,隨便都行。待二者運行穩定之后,啟動cmd命令行,輸入adb devices來查看,結果得到如下提示:
C:/Users/leon>adb devicesList of devices attachedadb server version (31) doesn't match this client (36); killing...* daemon started successfully *看這句話的意思,大概是說目前運行服務器端的adb版本(也就是夜神模擬器的adb版本)比客戶端的版本(也就是SDK目錄下的adb版本)低,所以系統就把當前運行的服務給殺掉了。可是,僅僅是版本低一點而已,只要不影響使用,你沒事殺它干啥?殺了我怎么用呢?這個弱智的adb……
于是,我手動驗證了一下:
C:/Users/leon>adb versionAndroid Debug Bridge version 1.0.36Revision 0e9850346394-androidC:/Users/leon>nox_adb versionAndroid Debug Bridge version 1.0.31特別說明:在輸入上述命令之前,我已經將SDK下的adb所在目錄(C:/Android-SDK_R24.4.1/platform-tools)、以及夜神模擬器的adb所在目錄(C:/Users/leon/AppData/Roaming/Nox/bin)加入了系統的環境變量path中。否則,上述命令將無法執行成功!
可以看出,SDK目錄下的adb版本為1.0.36,夜神模擬器目錄下的adb版本為1.0.31,確實是后者的版本比較低。如此小小的一個版本差異就把這個弱智的adb給整蒙圈了,無法正常運行,導致我遇到了白天的問題。
于是去百度,發現有不少人在支招,有人說是到AS的菜單欄,Tools -> Adnroid -> enable ADB integration;也有人說是,運行cmd命令,cd到夜神安裝目錄,執行命令”nox_adb.exe connect 127.0.0.1:62001”;還有人說是找到夜神模擬器的安裝目錄把nox_adb.exe改名成adb.exe,等等等等。
但是,這些問題都是治標不治本,我一個個試過去,都沒能徹底解決我的問題。每次一關掉重啟,就會再次出現之前的問題。看來,還是得自己動手,才能豐衣足食。
經過一番摸索,最后終于理出了一個解決辦法,特記錄下來:
1、關掉AS和夜神模擬器。同時去任務管理器里看下,adb.exe以及nox_adb.exe這2個進程有沒有在運行?有的話就結束掉。
2、找到SDK的目錄和夜神模擬器的目錄,將SDK目錄下的adb.exe文件,復制到夜神模擬器的目錄下,因為夜神模擬器目錄下原本的adb文件名字叫做nox_adb.exe,因此復制過去之后也得改名為nox_adb.exe。
3、這樣就將AS目錄下的adb文件和模擬器目錄下的adb文件完全同步了,版本號也一致了。此時,可以使用cmd命令查驗一下:
C:/Users/leon>adb versionAndroid Debug Bridge version 1.0.36C:/Users/leon>nox_adb versionAndroid Debug Bridge version 1.0.364、重新打開AS和模擬器,待二者運行穩定之后,點擊AS的運行按鈕,你會發現模擬器乖乖的躺在列表里等待你的選擇。
至此,問題徹底搞定!打完收工!
新聞熱點
疑難解答