關於Android的ADB(Android Debug Bridge)的幾種錯誤說明
前言:Android除錯中,adb工具必不可少,但是有時常常出現的錯誤,讓我們手足無措,而各種問題的各種解決辦法又是多種多樣的,下面,根據幾種真機情況,對ADB的幾種錯誤進行終結和歸納,在Android除錯前,把工具環境給弄清楚,那麼,我們的工作將事半功倍。
ADB介紹:
其實,通過字面的意思,ADB:翻譯過來就是Android Debug Bridge,中文意思就是安卓除錯橋樑,是的,我們在除錯的時候,總要有一個東西可以和android裝置進行通訊,這樣,我們才能進行各種除錯操作,另外,各種除錯工具,各種助手,也都是通過ADB去連線的。它的強大,在android裡面無人能匹啊,為什麼這麼說呢,你使用的很順暢的各種手機助手,它們就是在這個工具上,加上一層殼,只不過把操作方式給提供便利了,但是其實原理還是一樣的,也就是說,我使用adb,照樣能完成助手上面的各種操作,但是前提是命令和android的目錄結構你必須很熟悉,當然,手機驅動你也要裝好。
Error 1:(環境變數沒有配好)
我們第一次使用ADT這個東西的時候,由於谷歌給我們的東西不像Windows當中的安裝包一樣,如果你已經可以使用ADT了,那麼你的水平也就不是一般的檔次了,那麼如果這個時候,在cmd下,提示找不到adb這個東西的時候,那你就應該知道你的adb環境變數沒有配置好了。
Error 2:(error: more than one device and emulator)
一般情況下,如果你直接使用adb shell這個命令去進入裝置的shell Terminal的時候,這個錯誤有可能會產生,為什麼呢?
情況1:因為你連上了兩個裝置以上,而在進入shell的時候,沒有指定進入哪個shell,所以會有這個提示。這個時候怎麼辦,使用-s選項,選擇你的裝置名,就可以正確的shell進去了,至於-s後面要跟啥,當然是跟你的裝置名了,裝置名檢視:adb devices
情況2:使用網路adb連線後沒有斷開,再次連線,而這個時候ip改變了,這個時候,也相當於多個裝置的連線。不過也不排除不斷開的情況,裝置名是:**.**.**.**:5555
Error 3:(Adb connection Error:遠端主機強迫關閉了一個現有的連線)
這種情況,一般在windows下會出現,出現的原因,就是產生的執行緒太多了,windows自動斷開了。那麼,我們來看看一般的解釋是如何的:Windows 環境下,adb 的一個限制,也可以說是 bug。當手機上同時執行的程序數大於 64 時, 就會引發 adb 奔潰。更深層次的原因,就是 Windows API 的 WaitForMultipleObjects 所支援的最大控制代碼數是 MAXIMUM_WAIT_OBJECTS,即 64。
解決辦法:1、使用修改後的adb,如果你需要同時執行這麼多程序的情況下。
2、把adb重新reset一下(adb kill-server,adb start-server)
Error 4:(Segmetation Fault)
產生這個錯誤,有可能是這樣的場景,當你使用網路adb方式去連線一臺android裝置,這個時候,已經有人連上了這個裝置,然後,然後這個報錯就錯來了。
Error 5:(android裝置的adb沒有開啟)
搞了半天,裝置的adb開關沒有開啟,是的,高手往往會有如此容易的錯誤,所以不要計較,去打開了以後再用吧。
Error 6:(通訊埠被佔用)
如果你在使用ddms,或者eclipse的adt,或者是各種手機助手,那麼注意了,adb這個時候容易被它們把埠給強佔了,不要弄了半天,結果是自己誤開了一個助手之類的軟體造成的。