ChatGPT解决这个技术问题 Extra ChatGPT

Android Device not recognized by adb

My Android device isn't recognized by eclipse nor adb anymore. My OS is Windows 7 64-bit, and I'm using a Nexus 4 with Stock Android 4.4.2.

Here are some details on the problem:

Yesterday I could run Android Projects from eclipse on my device with no problems. The only thing that I did on eclipse, which could have caused this problem, was installing the v7 appcompat support library from a resource to eclipse using this guide on developers.android (https://developer.android.com/tools/support-library/setup.html). The device is still recognized as a normal multimedia drive in Windows when it's not in debug mode. The device is in Developers mode and in Debug mode when I try to run an Android Project in eclipse or try to see if it's recognized by adb using adb devices in the console. The Google USB drivers have been installed through the ADK Manager The USB OEM drivers for Windows have already been installed according to the tutorial on the android-developers site (see: https://developer.android.com/tools/extras/oem-usb.html) I tried to restart adb by using the commands adb kill-server and adb start-server, and again checked if the devices was recognized by using adb devices. The device was still not listed on the console. Restarting windows & eclipse did not fix this problem.

Does anyone know a solution for this problem? Thanks in advance!

UPDATE: Thanks for the repies, the problem is solved (for now). I tried the following suggestions in this order:

I restarted my device - this did not fix the problem I set my device to PTP mode - this fixed the problem.

So I reset my device to MTP mode & debug mode again to check if it still would be recognised by adb for some reason. It definitly doesn't get recognised by adb when it's in MTP-mode. I don't know how it got recognised some days ago, because I never setmy device to PTP-mode. Anyway, the solution to my problem is that my Nexus 4 must be in PTP-Mode and of course in debug-mode to get recognised by adb.

I didn't try any other suggestions since my problem got solved with my current drivers.

Did/Do you have the chance to test your device on another machine? Did you try rebooting your device?
try restarting adb server as administrator..
Try connecting your device in PTP mode.. It'll work sometimes..
same issue here, all this happened after I updated the sdk, changing it to PTP mode worked.
Try the solution in this post stackoverflow.com/questions/24264562/…

a
ajacian81

Generally, I think your USB connection should be set to use MTP (Media Transfer), however, I couldn't get my computer to recognize my device (Nexus 4). Oddly, setting the USB connection to Camera got it working for me.


Worked for me as well
Nexus 7 2012 - danced this around for DAYS - finally changed MTP to Camera and it ALL LEAPS TO LIFE! THANK YOU! THANK YOU! THANK YOU! HADYA UPVOTE A HUNDRED TIMES?!?
in my case was USB Transferring Images mode that worked
H
Hesam

I recently had this issue (but before that debug over wifi was working fine) and since none of the above answers helped me let me share what I did.

Go to developer options Find Select USB configurations and click it Choose MTP (Media Transfer Protocol)

Note: If it's set to this option chose another option such as PTP first then set it to MTP again.

UPDATE:

PTP stands for “Picture Transfer Protocol.” When Android uses this protocol, it appears to the computer as a digital camera.

MTP is actually based on PTP, but adds more features, or “extensions.” PTP works similarly to MTP and is commonly used by digital cameras.


@sdgluck, I am glad it worked for you. I just updated my answer to shedding a light on the difference in order to make sure you won't miss extension features.
In my case I open the developer options, and then just enabled the USB Debug in a Samsung device.
A
Aritra Roy

I also faced the same problem and tried almost everything possible from manually installing drivers to editing the winusb.inf file. But nothing worked for me.

Actually, the solution is quite simple. Its always there but we tend to miss it.

Prerequisites

Download the latest Android SDK and the latest drivers from here. Enable USB debugging and open Device Manager and keep it opened.

Steps

1) Connect your device and see if it is detected under "Android Devices" section. If it does, then its OK, otherwise, check the "Other devices" section and install the driver manually.

2) Be sure to check "Android Composite ADB Interface". This is the interface Android needs for ADB to work.

3) Go to "[SDK]/platform-tools", Shift-click there and open Command Prompt and type "adb devices" and see if your device is listed there with an unique ID.

4) If yes, then ADB have been successfully detected at this point. Next, write "adb reboot bootloader" to open the bootloader. At this point check Device Manager under "Android Devices", you will find "Android Bootlaoder Interface". Its not much important to us actually.

5) Next, using the volume down keys, move to "Recovery Mode".

6) THIS IS IMPORTANT - At this point, check the Device Manger under "Android Devices". If you do not see anything under this section or this section at all, then we need to manually install it.

7) Check the "Other devices" section and find your device listed there. Right click -> Update drivers -"Browse my computer..." -> "Let me pick from a list..." and select "ADB Composite Interface".

8) Now you can see your device listed under "Android Devices" even inside the Recovery.

9) Write "adb devices" at this point and you will see your device listed with the same ID.

10) Now, just write "adb sideload [update].zip" and your are done.

Hope this helps.


@AtiraRoy This one helped me: 7) Check the "Other devices" section and find your device listed there. Right click -> Update drivers -"Browse my computer..." -> "Let me pick from a list..." and select "ADB Composite Interface" Thanks!
@AtiraRoy Such perfect explanation. Thank you so much!
If anyone doesn't see ADB Composite Interface... you have to selecct "Browse all devices" then go to the folder named "usb_driver" from the google usb driver .zip you downloaded previously. Then select the "android_winusb.inf" file and then you'll see "ADB Composite Interface"
F
FlorianB

It may sound silly but in my case the USB cable was too long (even if good quality). It worked with my tablet but not with the phone. To check this, if you run on Linux run lsusb to make sure that your device is at least officially connect to the usb port.


my device is charing via usb but not being recognised by adb....
@KristiJorgji I had the same problem, charging but no adb. I just used a different USB cable and it worked fine.
N
Nativ

Try use PdaNet. you can download it from here

It installs missing drivers when you plugin your device.

Obviously make sure you "debug usb" option in "developers options" is on.

Another thing, it's important to uninstall any device's installed driver before using it.


@user3135185 did you manage to solve this thread according to my explanation?
D
Dragan Ostojić

Fundamentally, the issue has to do with not being able to get MTP+ADB working while for example PTP+ADB may work. In my case when I plugged Nexus 5, windows 7 will install only MTP driver completely ignoring ADB. I couldn't find a good solution for this problem anywhere else so here I provide steps (some of the steps I copied from other sources):

0) Unplug Nexus 5. Make sure you selected MTP and ADB.

1) Make sure that sdk\extras\google\usb_driverandroid_winusb.inf in Google SDK had the following lines (in two places in that file):

;Google Nexus (generic)

%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE2&MI_01

NOTE: VID_18D1 is Google VID, PID_4EE2 is PID for MTP+ADB, MI_01 means that ADB is on interface 1 (MTP is on interface 0).

You can check what is on what interface by plugging Nexus 5 into a Linux system and typing lsusb.

2) first delete all installed Google USB drivers. One good tool is called USBDeview and can be find at the following location: http://www.nirsoft.net/utils/usb_devices_view.html Download the tool and run it (there is no need to install it). Take a look at the colored status indicator on the far-left of the USBDeview window. Green indicates the the device functions properly. Pink means the device can unplug and works properly (although it may not actually work properly). Red indicates a disabled USB device. Gray (circled, below) means the device is installed, but not connected. Second, remove all gray items with the words “Google”, “Linux”, “ADB”, or “Android” in the title.

3) Now delete old cached Google *.inf files. Open a Windows Explorer and navigate to the C:\Windows\INF directory. Somewhere in there there is an "oemN.inf" file (where N is a number that will vary on your system) that is a copy of the android_usb.inf -- the thing to do is to find which file and remove it. Windows keeps a cache of the INF files here and what we found is that sometimes an older cached copy is used instead of a newer version.

One simple way to find which one using the Windows Explorer: - In the explorer's Search box, enter "androidwinusb86.cat" without the quotes. - Typically the search will be empty because no filename has this pattern. - Go to Tools/Folder Options, click Search Tab and click Always search file name and contents. Click Apply - Search again. This time it should list a few files such as "oem90.inf" (you'll have one or more, with different numbers).

Now use the Windows Explorer and delete the "oemNN.*" files that matched above (only those with androidwinusb in them.).

4) We now want to disable installation of MTP by windows before windows discovers ADB. Now search for wpdmtp.* files in the same directory. Presence of these files will force install MTP disregarding ADB class in the same (composite) device. Move these files out of \inf folder

5) plug in the device again. This time, both MTP and Android ADB driver installation will fail.

6) Find Other devices in the Device Manager and when expanded it should show Nexus 5 and MTP. Right click and update Nexus 5 by navigating to the sdk\extras\google\usb_driver\android_winusb.inf.

Move wpdmtp.* files back to \inf folder. Right click MTP device and update.

7) If necessary, confirm on your Nexus 5 that this PC has access to the phone.

8) If everything went as expected you should see in Device Manager the following:

Expand Android Device. Right click Android Composite ADB Interface, select Properties, choose tab Details, under Property select Hardware Ids. You should see USB\VID_18D1&PID_4EE2&MI_01

Expand Portable devices. Right click Nexus 5, select Properties, choose tab Details, under Property select Hardware Ids. You should see USB\VID_18D1&PID_4EE2&MI_00


Very nice writeup. Thank you.
Fantastic! Worked with two notes: 1. Had to restart the device and set to PTP mode. 2. I didn't have any oem cached files to delete and had only Nexus as Android Device in device manager.
R
Rafael Delbel

With USB connected, on android device Settings > Developer options > Revoke USB debug authorizations USB Debug. Remove the USB and connect again, then "Allow USB debugging".


j
justarandomguy

For those people to whom none of the answers worked, try closing the chrome://inspect/#devices tab in Chrome if it is open. This worked for me.


Omg this worked. Such a simple solution after a hour of googling and trying different solutions!
a
alansiqueira27

Go to prompt command and type "adb devices". If it is empty, then make sure you allowed for "MTP Transfer" or similar and you enabled debugging on your phone.

To enable debugging, follow this tutorial: https://www.kingoapp.com/root-tutorials/how-to-enable-usb-debugging-mode-on-android.htm

Then type "adb devices" again. If a device is listed in there, then it should work now.


N
Nizam

Set your environmental variable Path to point to where the adb application is at: [directory of sdk folder]\platform-tools


T
Tom Taylor

Enabling Developer mode by tapping on Build Number 7 times worked for me.


J
Jeremy

Make sure you are connecting with a USB and not a lightning cable. I had this problem trying to connect using a cord with lightning cables on both ends and it would not list the device. But switching to a USB to lightning cable worked.


B
BlackBeard

Find drivers for your device and install them That will be the end of your device not detected problems Windows have driver problems, sometimes messed by overriding the existing driver

You can also try uninstalling driver from Win7 and reinstalling


Note that for the Nexus 4, you can use the 'Google USB Driver' available in the 'Extras' section of the SDK.
R
Registered User

Check that the USB cable is indeed capable of transferring data. Some cheaper ones, especially those meant to charge non-phone/computer devices, might only support charging.

You can verify this by checking if the device shows up as mountable file system. In Linux, you can also use the command lsusb to check if it's being detected.


F
Fawaz Chughtai

For those facing problem after upgrading their android device to android 10, same PTP Mode option will work as prescribed by user3135185


N
Nizam

Download and install Moborobo software on your computer. Connect your device with USB debugging through USB cable. Now open moborobo and it will connect to your android. Stay connected, now your device should recognize as adb devices and get listed.