做Android開發(fā)連接手機(jī)調(diào)試時(shí),明明已經(jīng)打開了開發(fā)模式,允許USB調(diào)試,連接上手機(jī)后仍然無法發(fā)現(xiàn)設(shè)備,在控制臺(tái)中輸入adb shell后報(bào)錯(cuò)error:device not found。網(wǎng)上的做法大致分為:
1、adb kill-server來殺死adb進(jìn)程,然后再使用adb start-server命令來開啟;
2、檢測(cè)5037端口(adb.exe默認(rèn)端口)是否被占用,關(guān)閉除adb.exe以外占用了5037端口的進(jìn)程,重新開啟adb服務(wù):
2.1、adb nodaemon server:檢測(cè)5037端口是否被占用;
2.2、netstat -ano | findstr “5037”:查看是什么進(jìn)程占用了5037端口;
2.3、tasklist | findstr “21152”:查看這個(gè)進(jìn)程是由哪個(gè)程序創(chuàng)建的(21152就是占用5037端口的一個(gè)進(jìn)程的PID);
2.4、taskkill /f /pid 21152:將進(jìn)程關(guān)掉;
2.5、adb devices:顯示當(dāng)前連接設(shè)備。
在此提供另外一種解決方案,通過手動(dòng)查看硬件ID,并安裝google原生android debug驅(qū)動(dòng);
1、右鍵我的電腦->管理->設(shè)備管理->Android Phone.在這里我們可以看到對(duì)應(yīng)android設(shè)備的驅(qū)動(dòng)。
2、選中該驅(qū)動(dòng)右鍵屬性,在詳細(xì)信息選項(xiàng)下,在屬性(p)選項(xiàng)中選擇硬件Id,記錄下面的值(v)中的信息,例如某設(shè)備的這一值為:
USB\VID_2A45&PID_0C02&REV_????&MI_01USB\VID_2A45&PID_0C02&MI_01
3、在電腦中找到android開發(fā)下載的sdk目錄(假設(shè)你已經(jīng)通過sdk manager下載了),進(jìn)入\extras\google\usb_driver文件夾下,找到android_winusb.inf并打開,這就是google針對(duì)android的一個(gè)配置文件。在文件中找到[Google.NTx86](針對(duì)32位平臺(tái),64位同理添加)這一行,在下面可以看到很多android設(shè)備的驅(qū)動(dòng)信息,例如:
;Google Nexus One%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02&MI_01
這里我們只需要仿照這種文件的格式,復(fù)制這些驅(qū)動(dòng)信息,并用2中獲取的2A45和0C02來修改,如下:
;MEIZU metal%SingleAdbInterface% = USB_Install, USB\VID_2A45&PID_0C02%CompositeAdbInterface% = USB_Install, USB\VID_2A45&PID_0C02&MI_01
保存并關(guān)閉。
4、卸載掉原來驅(qū)動(dòng)程序,重啟電腦。確保手機(jī)已經(jīng)進(jìn)入開發(fā)者模式并允許USB調(diào)試,連接方式選擇傳輸文件。然后再次右鍵電腦->管理->設(shè)備管理->其他設(shè)備。可以看到ADB Interface選項(xiàng)上有一個(gè)問號(hào),表示該驅(qū)動(dòng)沒有正確安裝。選中ADB Interface并右鍵選擇更新驅(qū)動(dòng)程序軟件->瀏覽計(jì)算機(jī)以查找驅(qū)動(dòng)程序軟件,在瀏覽中選進(jìn)我們之前添加了硬件設(shè)備驅(qū)動(dòng)信息文件android_winusb.inf的文件夾(D:\android-sdks\extras\google\usb_driver,這里只需要選擇文件夾,不需要選擇文件),下一步后選擇始終安裝。
5、安裝成功后,在設(shè)備管理中會(huì)出現(xiàn)一個(gè)Android Phone的選項(xiàng)。
轉(zhuǎn)載:CSD博客
聯(lián)系客服