週末想作個安卓工具軟件,鏈接手機進行調試,碰到一些坑,記錄一下。linux
手機:一加5。系統版本:安卓8.1。電腦系統:win7專業版。開發工具:VS2019。android
一、手機不彈受權認證shell
手機鏈接電腦,安裝驅動,開啓USB調試,一直不彈出受權彈窗。嘗試從新插拔、開關USB調試、重啓手機、重裝啓動、重啓電腦,都無效。windows
嘗試使用豌豆莢、應用寶等工具,也連不上。app
直接adb devices命令,提示未受權。工具
懷疑是adb問題,嘗試更新adb。環境變量中配置的adb在路徑「C:\Android\adb.exe」下,百度搜索adb,給出以下推薦(http://adbshell.com/downloads),下載更新。開發工具
更新後,仍無效。(此處巨坑,這個站點adb版本是1.0.32,並非最新版,然鵝我當時並未關注版本問題......)測試
換個思路,直接上開發環境。網站
在VS2019中新建安卓項目,安裝對應版本SDK與Google USB Driver,重啓adb服務。google
不出所料地沒用......
再來。打開Android Studio,新建個項目,安裝對應版本SDK與Google USB Driver,Run。沒報啥但願,沒想到手機上居然彈出受權窗口了!!!趕忙點擊贊成,選擇設備,開始調試。測試app完美運行。
二、VS2019沒法鏈接
終於搞定手機受權驗證了,也別管啥緣由了,趕忙幹活吧!
切回VS2019,重啓adb,我擦,怎麼尚未?
命令行執行adb devices:
咋又變成未受權了......心累,仍是得研究出來爲啥。
全局搜索adb.exe,找到5個:
切到各個目錄,分別執行「adb version」、「adb devices」命令。版本有1.0.3二、1.0.3九、1.0.40、1.0.41。其中1.0.32下「adb devices」指令提示設備未受權,其餘版本下都是已受權。看來仍是版本問題.....打開以前百度下來的最新版本,一查,我擦,1.0.32......巨坑啊。這個網址好像官網啊,居然不是最新的......
從新百度一番,找到Google的更新地址(https://dl.google.com/android/repository/platform-tools-latest-windows.zip),下載,測試得是1.0.41。而後把全部地方的「adb.exe」、「AdbWinApi.dll」、「AdbWinUsbApi.dll」三個文件都更新成Google包裏最新的,從新測試。
命令行執行「adb devices」命令,已受權。Android Studio測試,鏈接正常。VS2019,,終於連上了......DeBug,完美運行。
三、總結
adb沒法自動更新,必須手動下載覆蓋更新,因此必定要找到正確的更新地址。Windows包、Mac包、Linux包。
各個IDE用的都不是系統環境變量中的adb,因此更新時要找對要修改的位置。VS2019的路徑在「C:\Program Files (x86)\Android\android-sdk\platform-tools」,Android的在「C:\Users\[user name]\AppData\Local\Android\Sdk\platform-tools」。更新時最好不要直接替換這麼簡單粗暴,兩個IDE的Android SDK管理器裏均可以更新最新版的,找到「Android SDK Platform Tools」,更新便可。
其餘位置就須要咱們手動更新了。
最後,有沒有大佬知道http://adbshell.com這個網站是啥?坑爹啊!