關於ubuntu下adb沒法找到設備的分析

本人因爲是一個ubuntu新手,裝機,配置jdk,eclipse, sdk, pydev ,adt這些種種弄的我身心俱疲,等我這些弄好之後,覺得萬事俱備只欠東風了,結果倒黴的adb出了問題了,之前上班的時候記得usb設備在linux下是不須要驅動的,我甚至還覺得要裝驅動什麼豌豆莢之類的後來仍是沒有去下,肯定不須要驅動,但是個人adb就是找不到設備啊,我說的找不到設備是這樣的狀況,就是adb devices : linux

結果:List of devices attached, 下面什麼設備也沒有。 android

搜索網絡說可能的狀況有如下幾種,我一一排查 ubuntu

1.個人android手機版本和adb版本不兼容 網絡

2.adb須要的5037端口被其餘的應用程序佔用了 eclipse

3.個人adb_usb.ini文件中沒有加入我手機的pid號 tcp


1.我以爲不可能,由於個人adb是最新的版本1.0.32,手機的版本是4.1的,我以爲adb應該向下兼容,因此排除這個可能 spa

2.我用命令檢查一下5037的端口誰在佔用 server

netstat -ap | grep 5037 ip

結果是:tcp        0      0 localhost:5037          *:*                     LISTEN      26748/adb 開發

就是adb本身在用啊,這個也不可能,其實不經過這個步驟也會知道5037有沒有被佔用

root@root-MS-7345:/etc/udev/rules.d# adb kill-server
root@root-MS-7345:/etc/udev/rules.d# adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *

3.看來只有第三種可能啦,就是adb_usb.ini沒有加入手機的pid號

  • 1.你們要注意了,這個時候就是萬惡的問題出現了,這個時候要去找adb_usb.ini這個文件,首先你要明確你用的什麼身份登錄的ubuntu系統,若是是root身份。那請去目錄/root/.android尋找這個文件,並把vid加入進去,若是你使用的是user用戶,那請去/home/username/.android下尋找這個文件,並把vid加入進去。我就是搞混了這個登錄用戶一直去/home/username/.android下修改,結果搞了一天都沒有效果,狂怒啊。效果是這樣的:# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
    # USE 'android update adb' TO GENERATE.
    # 1 USB VENDOR ID PER LINE.
    0x2717,注意vid前面要加上0x,表示16進制的
  •    下面進行第二步動做。

      修改/etc/udev/rules.d/51-android.rules的方法:


      SUBSYSTEM=="usb", ATTR{idVendor}=="2717", MODE="9039",            GROUP="plugdev"

ps:pid 怎麼得到,連接手機與電腦而後在終端輸入lsusb, 獲得相似下面的輸出:

Bus 001 Device 005: ID 2717:9039  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

這裏個人設備的vid是2717,pid是9039

還有一個問題是怎麼能顯示出隱藏的文件,請用快捷鍵:ctrl+h


還有一種狀況是adb devices:

結果是:List of devices attached
20ca0ca1    offline

這個有兩種狀況,

1.adb 版本低

2.手機段沒有設置開發模式開啓

3.手機和電腦連接後沒有在手機端確承認以在電腦端操做。這個我沒有具體的試,遇到再研究吧,僅以此文記念我爲此消耗的兩天。

相關文章
相關標籤/搜索