ADB is server is out of date, killing …

Bilal Bayasut
2 min readSep 24, 2017

--

Again, just a note for my future self. Someday I installed android studio in my ubuntu 16.04 elementary os based machine. Then I install npm, react-native and genymotion. But when I try to emulate it using genymotion and check the adb, adb throws error like this :

adb devices
adb server is out of date. killing…
cannot bind ‘tcp:5037’
ADB server didn’t ACK
* failed to start daemon *
error:

I’ve searched the net and it can’t resolved. Until I found this wisdom sayings :

If you have adb installed as part of your Linux distribution, then your PATH probably points there. Chances are this adb is version 1.0.31 (or earlier).

Genymotion comes with its own adb in the tools/ directory, which is version 1.0.32 if you are running the latest Genymotion, currently 2.3.1. Unless you changed it in the settings, Genymotion will start the bridge with that copy.

Since adb operates in a client-server arrangement, the client version should match the daemon version. In your case, they don't and that's why you're getting the adb server is out of date. killing... message. If the daemon is killed or dies, the Genymotion launcher automatically and immediately restarts adb (using its own copy), and that's why your client can't start a new daemon bound to port 5037.

The solution is to make sure that the version of adb you are invoking on the command line matches the one that Genymotion is bringing up as a daemon when it starts the VMs. The easiest way to ensure this is just to use the adb binary in Genymotion's tools/ directory.

Note that if you have changed Genymotion’s default of using its own tools to use custom SDK tools, then you’ll need to use an adb client that matches the version contained in the SDK you're pointing to. As far as I can tell, KitKat (4.4.4) and earlier SDKs contain adb version 1.0.31, while the Lollipop (5.0) SDKs have 1.0.32.

Then what i did is I did :

cp ~/Android/Sdk/platform-tools/adb /usr/bin/adb
chmod +x /usr/bin/adb
nano /etc/environment
source ~/.bashrc

And it worked

--

--

Bilal Bayasut

Digital nomad, full stack web dev, lecturer and a geek dad