Related
Today I wanted to learn Flutter. So, I read through the docs and found out that I can run my app on my real device (Oppo f5 in this case).
I do have enabled USB Debugging. And the MTP works fine (I can transfer files with the speed of light).
When I enable USB Debugging, a driver install window pops up (I'm using Windows 7 x64). It tries to detect ADB Interface from Windows Update and fails; then tries to install from the preconfigured driver folders, then fails.
Please do not tell me that I must use an emulator. I have a mere 3GB of RAM that can handle Only VsCode.
So, after a bit of Googling, I found out a solution. I just needed to install a thing called "OPPO Preloader Driver". Thank you everyone who participated in this thread!
your need Install a USB devices Drivers for (Oppo co) :
Then The command is executed in cmd to connect device with VS Code:
"yourPathSDK\platform-tools\adb.exe" connect 127.0.0.1:6555
I am encountering a problem with Android ADB debugging through USB.
Using Macbook Air 2013 and trying to connect Nexus 6 dev phone.
On the MAC Android Studio, android latest sdk is installed.
When I do
adb kill-server
adb devices
I get:
adb I 661 9881 usb_osx.cpp:259] Found vid=18d1 pid=**** serial=*****
adb I 661 9881 usb_osx.cpp:259]
adb E 661 9881 usb_osx.cpp:331] Could not open interface: e00002c5
adb E 661 9881 usb_osx.cpp:265] Could not find device interface
So it found the device, vendor id, product id and serial match what I find in the system information for the Nexus 6.
Following suggestions found online I tried - but no success - the following to resolve:
dis- and reenabling debugging mode on the phone, also switching between USB configs for charging, MTP, PTP, RNDIS, Audio Source, MIDI, always making sure the authoriztation for the Mac's RSA fingerprint is given
closing Android Studio / DDMS, killing adb through 'kill-server' command as well as killing process through Apple activity monitor
run adb as root
reboot the Mac several times
reboot the Nexus 6
reinstall Android SDK completely
tried with another debugging enabled Android Device (Samsung Galaxy Tab, also here adb found correct device info but cannot access interface with same error)
tried with 3 different USB cables, all cables which were originally shipped with Android devices
Through google I learned that error code e00002c5 means the device is already in use by another driver.
I had recently installed Sophos Home Antivir. Thinking that this might prevent ADB from opening the device interface, I uninstalled Sophos completely with the provided uninstaller and rebooted the Mac.
Any hint is appreciated:
which steps to resolve?
as e00002c5 seems to be a clear indicator that another driver has the device in use, how to find out which process that is and how to stop it from doing that
I ran into this error as well, and it turned out that the problem for me was that a Stetho tab was open in Chrome (i.e. a tab at URL chrome://inspect/#devices ), which I guess was causing the device to be in use. Closing that tab, then running adb kill-server, made adb devices work again.
Same symptoms with a Galaxy S7 attached to Mac via USB. In my case, I had the Tizen IDE for Samsung Gear Development open. That also prevented adb working properly. Closing the Tizen IDE immediately helped.
In case you connect the mobile phone the first time, you may already have acknowledged the authorization for the computer on the phone. You have to delete the authorization on the phone and re-connect / re-auth it. Otherwise, the device will show in the device list, but is unauthorized. (I.e. you can't debug...)
If you are using VirtualBox and have a virtual machine opened, you are probably trying to use adb from your host while it is plugged on your virtual machine. The problem is that you cannot have your device plugged on both at the same time.
Solution : Uncheck your device on the bottom right panel if it is detected by your Virtual Machine.
If you have been accessing your device on virtual box and now trying to access it from your host OS, first you have to disconnect your device from the virtual box. To do that go to setting> USB > unchecked the device from list
Then unplug your phone first and replug it. Or kill and start the server using >adb kill-server
>adb start-server. It works for me.
I encountered this issue with the message "Could not open interface: e00002c5". e00002c5 indicates that another app is using the device. Tizen studio was the app causing this issue.
Closed Tizen IDE and connected devices were available in the adb devices list.
I was debugging my Mobillyo app with a LG K4 phone. I closed Android Studio then enabled USB Debugging in the phone settings,left the settings open, reopened Android Studio did RUN, a dialog opend with the phone info and Unauthorized, was asked to approve on the phone, touched Ok and it worked.
I have two Android phones
Alcatel One Touch 4030D, Android version 4.1.1, kernel version 3.4.0
Highscreen Spark, Android version 4.0.4, kernel version 3.0.21-perf.
adb devices detects the Alcatel phone, but not the Highscreen phone.
I tried to run adb kill-server; adb start-server, but it didn't help. Switching between different connection modes (Media device (MTP), USB storage) didn't help either. USB debugging is enabled.
Here are the screenshots of the Developer options settings:
How can I make adb recognize the Highscreen device?
Update 1 (03.08.2013 19:00 MSK): Adding the line 0454 to adb_usb.ini didn't help.
Update 2 (03.08.2013 19:59 MSK): My attempt to follow the official Google recommendations failed because I couldn't find the drivers for the Highscreen Spark device.
If you could setup an ADT on Linux or Mac, it will work out of the box.
We were able to connect all sorts of devices to adb easily with ADT on Linux/Mac.
If you haven't managed to connect it through usb, you can try the network connection.
Add your device to the same network, then type in the command prompt:
adb connect your_device_ip_address
Hey try to dig for drivers at Official website.
May be search other sites for USB drivers, that may help you to come out of your problem.
I had the same problem .Try it again by activating the usb mass storage.
Without adb driver for device (in your case Highscreen Spark) it is almost impossible to create a bridge(connection) between your program and device, as adb (Android Debug bridge) makes a connection between your PC/laptop to your android device And without Adb in windows Pc/Laptops its not easily possible to debug.
Because of this, Companies like samsung, lg, htc are providing adb drivers to users for easy debugging, if you dont have a adb driver for Your Device you have only one choice left , Change your operating System into linux and then see the magic.
I had this same problem. Turns out, the issue was the USB Port I plugged in to. The port directly on my laptop does not allow for ADB to see the device. The port on the back of my docking station does allow ADB to see the device. I believe it has to do with USB 3.0 vs. 2.0. I believe 3.0 blocks the protocol ADB needs to use.
You will actually require the device drivers to connect it, so try insatalling Highscreen Spark's PC Suite.
If that dosen't work or you don't find the PC Suite you can download Moborobo from here which is a universal PC Suite for smart phones and connect the device with it and then try connecting the device from abd
It may be a problem with your adb.exe. I had the same problem earlier for connecting HCL G1 tablet. I also added lines in android_winusb.ini, but could not connect yet. Then I found out this link. I got solution by changing the adb.exe file. Try this link : http://www.slatedroid.com/topic/37692-adb-drivers-problem/ Or just download the adb.exe from following link and replace it with you adb.exe file. http://sdrv.ms/NepKED It is also suggested run this command to make adb_usb.ini effective for respective adb after modifying. echo 0x2207 >> %USERPROFILE%.android\adb_usb.ini
Try these drivers
x86
x64
It works for me.
After head banging for more than a day - a small thing saved my life on my RK3066 based device:
after you update the adb_usb.ini and everything else,
and after you do a
adb kill-server
do a
adb usb
and only then do a
adb devices
saved my life
By the way
Adding the line 0454 to adb_usb.ini didn't help.
you should be adding 0x454
I was having issues with my android phone showing up when I typed adb devices but found out that it was the usb cable which caused the issue, members in my family have two different android phones each with their own charging cable. I was using one phone with the other phones usb cable just because it was the nearest and I didn't think it would make a difference but it did.
Try a different usb cable and that might help.
I have the same issue in the past but i don't found the driver on my computer today, so :
You can go on http://www.alcatelonetouch.com and find the call center for your land.
Call them , and explain the issue , they have to send you a driver to connect your phone to the computer. This drivers is very easy to install.
I have make that and i can use it for debbuging
I whish you good luck... Sorry for my English
I am trying to debug my application using a real device instead on the emulator. When I try to connect, it gives me the message:
USB device not found
I tried to unplug and plug it again, but it did not work. And I have also enabled USB debugging and unknown sources options in my device.
Any help is appreciated!
Thanks!
I had this problem with a Nexus 7 - it appeared in Device Manager fine but wasn't recognised by Android Studio. The device had USB debugging turned on. Eventually I noticed an icon in the top left hand corner that said "Connected as a media device. Touch for other USB options." When I selected this I was able to change from Media Device (MTP) to Camera (PTP) and then it started working.
If you are on windows, many times it will not recognize the device fully and because of driver issues, the device won't show up.
go to settings
control panel
hardware and sound
device manager
And look for any devices showing an error.
Many androids will show as an unknown USB device.
Select that device and try to update the drivers for it.
This solution works for every unrecognized android device... mostly general brands don´t come with usb debugging drivers...
go to settings
control panel
hardware and sound
device manager
And look for any devices showing an error. Many androids will show as
an unknown USB device or just Android
First thing you need will be your device IDs. You can get them opening up the device manager and finding the "Unknown Device" with a yellow exclamation point. Right click on it and select 'Properties', and then go to the 'Details' tab. Under the 'Property' drop down menu, select hardware IDs. There should be two strings:
USB\VID_2207&PID_0011&REV_0222&MI_01
USB\VID_2207&PID_0011&MI_01
Copy those strings somewhere and then navigate to where you downloaded the Google USB driver. Then you need to open up the file 'android_winusb.inf' in a text editor. I would recommend using Notepad++.
First, create a sub-section for your device. I called mine ';RCA 6378W2' but it doesn't really matter what you call it. Then, under the sub-section you created paste the Device ID strings you copied from the Device Manager, preceded by '%SingleAdbInterface%'. If you need help, look at this screenshot.
NOTE:
If you are using Windows 8 or 8.1, you will need to disable device driver signature checks before you'll be able to install the modified driver. Here's a quick video on how to disable device driver checks http://www.youtube.com/watch?v=NM1MN8QZhnk. Ignore the part at the beginning about 64 bit, your computer architecture doesn't matter.
Please look at this article, for more information and MacOS instructions.
Try a different cable, ideally an official Samsung one.
I had tried a crappy USB cable I had lying around and then tried another which was Samsung and works perfectly now.
Not sure why they would be different though but worked for me.
Found out for Samsung, Installing Kies also update the usb driver which solve my problem with connecting my Samsung Galaxy S Advance with Android 4.1.2 to Android Studio on Windows 7 64bit.
In this case the devise manager shows device driver is updated and working, but when I connect my phone Android Studio does not recognize my device.
I had the same problem with connecting my Galaxy Nexus to win7 x64. I solved it by getting drivers, they can be downloaded from here or also via Android SDK manager.
After you put your phone on developer mode, restart it. That worked for me, maybe it will work for you also. After restarting it, the phone was recognized, drivers were automatically installed. Note - I'm running on Windows 7.
I've been having this issue on Mac OSX Mavericks using Android Studio, using my Samsung Galaxy Express , I did a little trick, Run -> Edit Configurations - > Run -> Show chooser dialog. When I "play" and the dialog appeared, I connected my device and it did appear. ;)
You need to install the driver first. Follow the instructions on the Android's developers website:
http://developer.android.com/tools/extras/oem-usb.html
I had the same problem with a Samsung galaxy note 2. It was recognized on one pc but not on another one (both running windows 7 64b). After hours of struggling, I installed Kies (from the Samsung website) on the pc where Android Studio was unable to detect the smartphone (Kies was installed on the other one).
Like magic, Android Studio detected the phone !!! I noticed that the Kies installer installed some driver for the phone.
Consequently, for those meeting the same detection problem, I would strongly advise to first install Kies.
Galaxy S7, I had to go to Settings, Developer Options and allow USB Debugging. This asked to approve computer it was attached to and it showed up instantly.
I had tried restart the device, and it's work, popup and ask want to trust the mac for debug mode.
I am using Samung S8, I tried to install:
Intel Android Driver
Samsung USB driver
But the adb bridge driver was still missing.
I finally got it to work by installing the Samsung Smart Switch application which is a media manager application.
Updated at 2018-04-20: If you are struggle with the driver, just use http://adbdriver.com/downloads/
If you're using a USB Type-C cable, check if it has the charging and data transfer capability. Many USB Type-C cables are for charging only, and are not recognized by Android Studio.
Check installed drivers. If drivers ok, check device usb-port it could be damaged.
I have a Samsung Galaxy S4. Although visible from Devices, my phone was not listed as connected from Android Studio. I tried a few things independently, and then together, and found that only a combination of steps fixed the issue, so this is for you if measures listed above or on another site did not work on their own.
Enable USB debugging from "Developer Options"
Download Kies from Samsung. I believe Samsung US has replaced Kies with a new software called Smart Switch, but this did not resolve anything for me. I found a Samsung UK download of Kies that worked fine.
After connecting your phone to your PC via USB, go to your phone notifications and click on USB settings at the top. Switch it to Camera mode.
I repeat, only all 3 of these together fixed the issue, so if some fixes you have tried haven't worked, use these 3 and it could fix the problem for you. Best of luck.
Restart Android Studio Worked in my case
For me, this simple trick worked:
I actually enabled and disabled the listed USB Adapter for android in the device manager (Control Panel -> Hardware & Sound -> Device Manager). And holy moly it's working! :D
The solution for me was following the instructions at https://developer.android.com/studio/run/oem-usb.html#InstallingDriver. Specifically, the key part from that link that helped me to find the solution was this: "Install a USB Driver. First, find the appropriate driver for your device from the OEM drivers table below." This means that you cannot find a single link that applies to everyone as the solution. It will depend on your device! "So I visited the page to get OEM Drivers at https://developer.android.com/studio/run/oem-usb.html#Drivers. In my case, the device I was using was an LG K8 LTE. I had to go to http://www.lg.com/us/support/software-firmware-drivers#, Browse by product and I found the driver I needed under the Model Number "LGAS375 KG K8 ACG - AS375", Cell Phone Product. From http://www.lg.com/us/support-mobile/lg-LGAS375 I used the "Install the USB DRIVER" for Windows (http://tool.lime.gdms.lge.com/dn/downloader.dev?fileKey=UW00120120425).
Depending on the device model you are using, you will need to find the specific drivers that work for your phone, and that should work.
How to get connection to device working using adb command line:
USB debugging enabled on phone and phone connected.
I am exercising these commands on linux(redhat and ubuntu) but same commands work under the hood on windows. The device manager runs adb commands. You can find a console in your device manager or regular command-line works if you set up your paths to SDK.
If you can run adb and see something like ???????? in devices list ..
$ android-studio/sdk/platform-tools/adb devices
List of devices attached
???????????? no permissions
You might be running the adb server as a regular user.
You might have to run the adb server as root.
So kill the server as regular user and start it as root.
$ adb kill-server
$ which adb
$ sudo <fullpath>/android-studio/sdk/platform-tools/adb start-server
Now look at adb devices list, if it is first time this machine connects to this phone you will see "unauthorized".
$ adb devices
List of devices attached
MWS0216A31xxxxxx unauthorized
At this point on phone you should have dialog popped up and you can tap ok to authorize. Then you should see "device" in the devices list and commands like shell/push/pull/sync/backup... should work.
$ adb devices
List of devices attached
MWS0216A31xxxxxx device
$ adb shell "uname -a; df; ls /storage/sdcard0/Download"
Linux localhost 3.10.90-g2ff1b22 #1 SMP PREEMPT Tue Dec 27 17:12:50 CST 2016 aarch64
Filesystem Size Used Free Blksize
/dev 1.3G 108.0K 1.3G 4096
/sys/fs/cgroup 1.3G 12.0K 1.3G 4096
/mnt 1.3G 0.0K 1.3G 4096
/sys/fs/cgroup/pids: Permission denied
/system 2.4G 2.3G 106.8M 4096
/cust 492.0M 327.7M 164.3M 4096
/cache 248.0M 160.0K 247.8M 4096
/splash2: Permission denied
/3rdmodem 59.0M 4.9M 54.1M 1024
/3rdmodemnvm: Permission denied
. .
/storage 1.3G 0.0K 1.3G 4096
/data 25.1G 10.9G 14.2G 4096
/mnt/runtime/default/emulated: Permission denied
/storage/emulated 25.1G 11.2G 13.8G 4096
/mnt/runtime/read/emulated: Permission denied
/mnt/runtime/write/emulated: Permission denied
.
.
Lovely jubly. Hopefully.
For example:
My file path:
C:\...\sdk\extras\google\usb_driver\android_winusb.inf
My data to paste:
;Tablet PC
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_0003&MI_01
%CompositeADBInterface% = USB_Install, USB\VID_18D1&PID_0003&REV_0230&MI_01
Well, in my case updating drivers, restarting Android Studio, restarting my phone, changing the USB mode or unplugging USB did not help.
Then I went to the dev settings in my phone, toggled the Dev. Mode off and back on, and it worked. AS was open and phone was plugged at the moment.
I had this problem occurring suddenly in Dell Ubuntu linux machine with Android Developer Studio. I did the following steps
1. I opened "System Settings"
2. Select the listed item "Software and Updates"
3. Click on the tab "Additional Drivers"
4. There was a mention about "Dell Inc: Unknown" and the option "Do not use use the device" selected. I selected the alternate driver mentioned and did an "Apply the Changes".
It started working.
I just ran adb command prompt and hit 'adb devices' and it showed daemon was not running. It installed itself and now i can able to see android devices there.
C:\...\...\source\repos\ABC\ABC\Ex.Android>adb devices
List of devices attached
* daemon not running; starting now at tcp:5037
* daemon started successfully
ZF22Q3T unauthorized
and Reload the project
Windows, many times it will not recognize the device fully and because of driver issues, the device won't show up.
1).go to settings
2).control panel
3).hardware and sound
4).device manager
Restarted my PC and worked in my case.
I can't connect to my device anymore using ADB through the command line or in Eclipse.
Running the command
adb devices
returns the device name, but it says it's offline.
Things I've tried.
Toggled Android debugging mode
Reinstalled the Google USB driver
Restored the OS to a previously working backup (CyanogenMod)
Swapped the USB cord
Rebooted the phone/computer multiple times
Updated the Android SDK
I really don't have any clue what's going on. Anything else you think I can try, I'm all ears.
To be clear, if you're having this same issue the problem is probably an out-of-date SDK. As of 4.2.2 there is a security feature that requires you to confirm the RSA fingerprint of the connecting device. Open the SDK manager and update the tools! Then reboot.
Just kill the server adb kill-server
I just got the same problem today after my Nexus 7 and Galaxy Nexus were updated to Android 4.2.2.
The thing that fixed it for me was to upgrade the SDK platform-tools to r16.0.1. For me, this version was not displayed in my SDK Manager, so I pulled it down from http://dl.google.com/android/repository/platform-tools_r16.0.1-windows.zip directly.
You then need to rename the platform-tools directory and unzip it to android-sdk-windows/platform-tools. Using the SDK Manager, I had also updated to the latest sdk-tools before this.
If your whole Eclipse and ADT are ancient, you may need to update them as well, but I didn't need to.
Note: you may need to run SDK Manager twice (once to update itself) before you will see the latest packages.
It also seems to occur frequently when you connect to the device using the Wi-Fi mode (in Android Studio or in the console by running adb tcpip 5555 for example).
To fix:
Disconnect the USB connection—or turn off the device's Wi-Fi if you're connected over Wi-Fi.
Close Android Studio/Eclipse/other IDE.
Run adb kill-server to ensure adb is not running.
Restart your Android device.
After your device restarts, connect it via USB and run adb devices. This should start the ADB daemon. Your device should now be online again.
I hit the same issue on a Nexus 7 running 4.2.2 OTA update. I'm almost certain I had an ADB connection over USB and Wi-Fi after the update until it just stopped working. To fix, I updated my SDK using:
android update sdk --no-ui
Now my development tools are:
SDK rev 16.0.2
SDK tools rev 21.1
SDK API 17, rev 2
I can't stress that switching USB ports is key. Often front panel USB ports can be defective.
For anyone wondering about 4.2.2, there is a security question that appears on the phone requesting RSA verification with the PC. Be sure your tools are updated AND you allow the PC access by verifying the security question on the devices in question. This fixed it for me.
And as always, verify you have debugging enabled in the developer options ;)
Try by turning off usb debugging once and then enabling it agin and then connect your device with system: link
Multiple adb.exe files ?
My problem was solved when deleted a copy of OLD adb.exe from C:/Windows/.
I don't know how a copy of adb.exe got to the C:\Windows\ ?
When I launch adb.exe from android-sdk/platform-tools/ I had no problem with detection.
If your device normally connects over USB, but suddenly stops working, especially after the USB cable has been disconnected and reconnected, try the following non-invasive steps before doing some of the more drastic things mentioned in the other answers:
adb kill-server
adb start-server
adb devices
If your device is listed with 'device' next to it, you're back in business.
If your device is listed with 'offline' next to it, try restarting the device. The ADB daemon on the device will occasionally get hung. I've noticed this more when I've disconnected the cable while LogCat is running and after switching back from connecting via Wi-Fi or Ethernet.
If your device isn't listed then you should try the solutions in the other answers, starting with trying a different USB cable and port. Those cheapo cables can go bad.
I was having this problem and none of the other answers helped. What was necessary, after updating the SDK and installing the API for 4.2.2, was running:
android update adb
Another problem I was having was that I was trying to connect ADB over Wi-Fi, which is my only option because the USB ports on my Mac are really finnicky. Unfortunately, ADB over Wi-Fi doesn't show the security question in 4.2.2, so you need to find a USB cable that'll work and connect over USB at least once to accept the security question, but after you do that once, you can connect over Wi-Fi.
Be sure to use adb from your platform-tools folder, after updating the SDK tools.
I finally got this working after I realized I was using an outdated version of ADB copied in /usr/bin.
I ran to through same problem this fixed for me. connect your phone via usb first then make sure you check your mobile ip which is under settings >> about phone >> status run the following commands.
adb kill-server
adb start-server
adb tcpip 5555 //it resets port so put port you want to connect
adb connect 192.168.1.30:5555 //ip:port of your mobile to connect
adb devices //you will be connected over wifi
Sometime this may happen because of adb server error (i think). It always saying
"device-name is offline" from adb devices command.
Just kill server and start again. It worked for me.
"adb kill-server"
"adb start-server"
I used adb connect <device_ip> and non of the other solutions worked because my problem was on the other side. On the device I needed to stop adbd and restart it start adbd. Device is now "online" again.
I stumbled upon this question while trying to connect using the built in "Wireless ADB" feature present in Android 11.
I couldn't get it to connect properly. Always appeared as "offline".
What I did was following:
Firstly disconnect all ADB devices, just as a good measure:
adb disconnect
Then in the developer options, get into the "Wireless ADB" feature, if you're not already there yet. Go to "Pair using PIN" or similar. There, a IP and port will pop up in a dialog, together with a pin. Connect to the phone using:
adb pair 192.168.2.xxx:42838 # Put the IP and port of that dialog in this way
(Note that the port on the main window and on the PIN popup is NOT the same)
Your (PC) ADB will prompt you for a pin. Type it in and press ENTER.
Done that, the PIN popup on the phone should vanish and the computer name should show up in the trusted device list in the main window.
If you come this far, the next step will certainly work. Try to now connect to your phone using:
adb connect 192.168.2.xxx:53548 # This time use the port shown in the main window!
It should connect and you're good to go.
I tried dturvene and all the other solutions, but they didn't work. I needed one more step.
Run these commands
adb kill-server
android update sdk --no-ui
adb start-server
To verify that it worked, run 'adb version' before and after the commands and make sure it is the latest. The reason for the adb kill-server command is that it it most likely running, and it can't be updated while it is running, so you have to kill it first.
Installed the latest android sdk.
Changed the USB port of the device.
Changed from MTP -> Charge only -> MTP.
It worked.
For me nothing worked. I spent about 12 hours constantly searching on the Internet and trying the solutions that worked for other people having similar issues.
Finally I ended up with just doing the ADB stuff over the LAN. The setting was right next to the USB Debug setting and in ADB it can be activated with "adb connect [IPADDRESS]:[PORT]". The port was 5555 on my phone.
I hope this helps someone to get back to work instead of having to deal with constant drawbacks.
This approach worked for me:
adb kill-server
Disable the offline device in Device Manager (see image below)
Enable the device in Device Manager
adb start-server
Device Manager, "View" menu, "Devices by Connection":
I initially encountered the same problem (with ADB/fastboot downloaded from GitHub), but I eventually got it to work. What worked for me:
Android SDK. ADB version: 1.0.31
Using the front USB port (MacBook Pro 15")
Restarting the phone after enabling Dev options and USB debugging (do so by 7x tap on settings > about phone > build).
Kill adb server in case no device is listed (adb kill-server)
The debug icon should be visible on the phone.
Be sure to unlock lock-screen to check for the RSA fingerprint confirmation dialog.
One more possibility for people with flaky ADB connections, and if they're on a Mac and have Android File Transfer installed: I found that file transfer was interfering with my ADB connection, causing it to stop working intermittently.
Killing the Android File Transfer Agent.app process that looks for compatible devices (for example, the Nexus 7) being connected to the Mac cures the flakiness for me.
If you've previously authorized the RSA fingerprint of your PC and tried adb kill-server etc. with no luck, your problem might just be that you're trying to connect to it while it's locked. Try pressing the screen-on button and entering your pattern - this fixed it for me.
The best way I figured is by disabling and then enabling the device from Device Manager and running the adb devices command.
Go to the start tab and right click on Computer
From the drop down menu, click Manage
From the computer management screen, click Device Manager
On the right pane, expand portable devices to find your device
Right click on your device name and click disable on the drop down menu
When it gets disabled, repeat step 5 except for enabling it.
The device will be back online. It's faster.
As nobody gave an answer for my situation: you may not have access to the ~/.android/adbkey file. If you initially start adb with sudo, it will generate a public key pair, writing this to ~/.android/adbkey.pub and ~/android/adbkey. Of course, the private key is chmod 600 - only readable for root in your home directory. Subsequently starting adb as normal user will give no access to the private key file, which in turn will fail silently with "device offline".
What solved for me on Mac was updating adb to the latest version (1.0.32). Now i can see my device online again
The reason for a device to be reported as offline is that adb can not connect to it. Adb executable from the development environment creates a connection (socket) with the device under control. The device has a service (daemon) that listens for this communication. The daemon is called adbd (as in adbdaemon).
When one enables adb on a device in fact one starts this daemon, so comms can be established with the device.
When the device is reported by adb as offline is because the daemon is not running anymore or is in a state that will not accept connections. Most often than not this happens if the network goes down on an active (network) connection.
The only way that I could fix this was by rebooting the device.
One can arrive to fixing the offline status by many other means but restarting the device always works.
When I am facing the same issues than doing like below:
Restart adb by issuing adb kill-server followed by adb start-server in a command prompt
Disable and re-enable USB debugging on the phone
Rebooting the phone if it still doesn't work.
99% of my issues have been resolved with these steps.
I have a dodgy USB connection so I tried to get wifi connectivity going. Tried basically everything here, but one thing I did not try until last, and suddenly it worked! So, if you end up stuck, try these steps:
1. Connect with USB cord
2. adb devices
List of devices attached
HT85X1A00342 device
10.0.0.43:5555 offline
3. adb usb
restarting in USB mode
4. adb reconnect
reconnecting HT85X1A00342 [device]
5. adb tcpip 5555
restarting in TCP mode port: 5555
6. adb devices
List of devices attached
7. adb connect 10.0.0.43:5555
connected to 10.0.0.43:5555
Sweet! I don't know exactly if forcing it to restart USB mode then TCP/IP in sequence helped, or just the last three commands, but clearly it started working. I also found there's a Developer Option to Enable Debugging on Wifi, and you select your hotspot. That may also prevent it working, so check that as well.
Good luck!
I tried all of the solutions above. Mostly, adb kill-server would solve the problem. This time, the problem was in USB cable. Poor quality cables in fancy packing don't work.
It's just because your computer doesn't have the right driver. To fix that:
Download and extract Android SDK
Go to Device Manager (Right Click on Computer --> Properties --> Device Manager
On the right pane expand portable devices to find your device
Right click on your device name and click Update Driver Software
Browse my computer for driver software
Browse to your Android SDK folder on step 1.
Next and you're done