ADB server didn’t ACK or adb server is out of date. killing…

Android Debug Bridge (adb) is a versatile command line tool that lets you communicate with an emulator instance or connected Android-powered device for your Android application development. It is a powerful tool to run and debug your app on the connected device. It can be run using the command adb in the command line if the location of adb.exe is in your system PATH.

adb.exe is in the directory platform-tools of your Android SDK location. Let’s say, if your SDK location is C:\Users\{Username}\AppData\Local\Android\sdk, it would be C:\Users\{Username}\AppData\Local\Android\sdk\platform-tools\adb.exe. So, you should have C:\Users\{Username}\AppData\Local\Android\sdk\platform-tools added into your system PATH variable.

I want to share my experience of adb how to fix the error of failing to start ADB server during my first days of Android development. In Android Studio, the menu Run > Run 'app' instantiates ADB, but it could not start ADB showing the error “ADB server is not responding”. I could not even run adb commands such as adb devices, adb shell getting the errors.

C:\Users\{Username}>adb devices
adb server is out of date. killing...
ADB server didn't ACK
* failed to start daemon *
error: unknown host service

C:\Users\{Username}>adb shell
adb server is out of date. killing...
error: unknown host service
error: could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037: Only one usage of each socket address (protocol/network address/port) is normally permitted. (10048)
could not read ok from ADB Server
 * failed to start daemon *
error: cannot connect to daemon

After doing some research in Google, I found that it is because of a process already consuming the port 5037 which ADB is trying to use. So, I figured out the active connections with the command netstat -noa that shows 5037 listening.

C:\Users\{Username}>netstat -noa
Active Connections
Proto Local Address Foreign Address State PID
....
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 6740
....

Then I run tasklist | findstr 6740 to find the process and it shows AndroidInterface.exe is using that port.

C:\Users\{Username}>tasklist | findstr 6740
AndroidInterface.exe 6740 Console 1 5,500 K

What is AndroidInterface.exe? I have Moborobo mobile suite installed in my machine and it executes that process with the local user’s privileges. It is digitally signed by Moborobo Inc. which was issued by the VeriSign certificate authority (CA).

I uninstalled Moborobo from my machine, restarted Android Studio and re-connected the device. It solved the problem and I got adb running.

D:\AndroidStudioProjects\MyProject>adb devices
List of devices attached
BY2WKN154S054808 device

D:\AndroidStudioProjects\MyProject>adb shell
shell@hwChe2:/ $ run-as com.example.myproject
shell@hwChe2:/data/data/com.example.myproject $ ls
cache
files
lib
shell@hwChe2:/data/data/com.example.myproject $

Some Google-search result showed that Anti-virus software running could block adb.exe.

Advertisements

One thought on “ADB server didn’t ACK or adb server is out of date. killing…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s