Detecting device for debugging (ADB) does not work

2019-01-16 11:15发布

问题:

I've turned USB debugging on on my Archos 43 Internet Tablet (Android 2.3.26), but adb does not detect the device.

I have Kubuntu 11.04.

Output of shell command "lsusb":

michael@schlepptop777:~/.android_sdk/platform-tools$ lsusb
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 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
Bus 002 Device 002: ID 0e79:1411 Archos, Inc. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

So my "Vendor ID" is 0e79, isn't it?

For the next step I've created the following file:

sudo kate /etc/udev/rules.d/51-android.rules

with the following content:

SUBSYSTEM=="usb", SYSFS{idVendor}=="0e79", MODE="0666"

After that I've set the permissions:

sudo chmod a+rx /etc/udev/rules.d/51-android.rules

Then I've saved it and restarted udev:

sudo /etc/init.d/udev restart

And after doing all that steps adb still does not display my device:

michael@schlepptop777:~/.android_sdk/platform-tools$ ./adb devices
List of devices attached 
<empty line, because stackoverflow does not display this>

回答1:

In some cases you also have to add vendor id to this file: ~/.android/adb_usb.ini

# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE. 
0x0e79

Mind that this file might be overwritten when you upgrade SDK, so you might need to re-edit it afterwards.



回答2:

Mageia 2

At first, I got something like:

$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 

Then I found I needed to do Settings | Applications | Development and Check the USB Debugging check box.

$ adb devices
List of devices attached 
???????????????? no permissions

Trying as root, I got:

$ su -l
# adb devices
List of devices attached 
???????????????? no permissions

Then I realized that adb was still running as regular user. When, as root, I did:

# adb kill-server
# adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
A43-A44C0002-9BF80000-0C60C4CC-0D020027 offline

ADB for Android Developers (ARCHOS Internet Tablet) was helpful, except I ended up doing this as root:

# cat /etc/udev/rules.d/51-android.rules 
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",
SUBSYSTEM=="usb", ENV{PRODUCT}=="e79/*", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="e79", MODE="0666"
# udevadm control --reload-rules
# udevadm monitor
.
.
.
^C

The monitor command was helpful because it showed the device connects, disconnects, paths, etc.

I was then able to stop the server running as root, and start it as a regular user:

# adb kill-server
# exit
$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
A43-A44C0002-9BF80000-0C60C4CC-0D020027 offline

The device will not work when "offline". To fix that I had to reboot the Archos 43.

$ adb devices
List of devices attached 
A43-A44C0002-9BF80000-0C60C4CC-0D020027 device

Though I doubt that these actions were required, to play it safe, after rebooting, I made sure to plug in the USB and select Charge Only before I set USB Debugging on. I had also disabled WiFi and Syncing, but once it started working, adb would still connect with those being on.

At this point, downloading my app worked:

$ adb install bin/HelloWorld.apk 
2914 KB/s (157589 bytes in 0.052s)
        pkg: /data/local/tmp/HelloWorld.apk
Success

P.S. The next day, knowing that everything worked the night before, I booted up my development system and tried to connect again. This gave the "offline" status. I disabled sync and WiFi, without rebooting the Archos 43, and then adb devices showed "device" status instead of "offline". I am not sure what to make of that, but turning this stuff off could have significance after all.



回答3:

After doing the command sudo /etc/init.d/udev restart you have to reboot the system! I know, it sounds like a windows behaviour, but I broke my head for 3 hours before discovering this thing.



回答4:

I borrowed a cable from an sd card reader and it wasn't working for adb, whilst it worked for the sd card reader. I tried a new cable and low and behold adb devices recognises The device!



回答5:

Actually, just like Aultbot, replacing the cable did the trick for me as well. Strange as I had been using the cable for several hours when it suddenly didn't work with ADB.

Also, make sure you accept the connection on the phone (new security function in Android 4)

Edit: Recently, there has been some issues regarding the adb service. If it is not started (check with netstat or similar or type "set ADB_TRACE=1" before running your adb command to get debug messages) then check threads dealing with that error message. A common issue is that the default port is in use by some other application (change port by typing "set ANDROID_ADB_SERVER_PORT=12345" before the adb command).



回答6:

I'm on ubuntu 11.04, the only way I can get adb to connect to my Atrix is by changing the USB connection mode to "Windows Media Sync". Which is odd in the first place, but it's especially odd because ADB on windows won't connect when it's set to win media sync. Or you can use wireless adb. There's a couple widgets that make it really easy to enable wifi adb. They show the ip address on the widget and everything. :)



标签: android adb