Genymotionがadbで認識されない場合の対処

Genymotionでadbで以下エラーが出てデバイスが認識されない場合があります。

$ adb devices
adb server is out of date. killing...
cannot bind 'tcp:5037'
ADB server didn't ACK

adbでデバイス認識しない場合にまず試すkill-server, start-serverをしても同様のエラー。

$adb kill-server
$ adb start-server
adb server is out of date. killing...
cannot bind 'tcp:5037'
ADB server didn't ACK

これはadbが古いために起こるエラーです。Genymotionの設定によって2パターンの原因、解決方法があるので設定画面からADBタブを選択します。

1.Genymotionのadbが古い
上記設定画面で、「Use Genymotion Android tools」にチェックが入っている場合、genymotionに同梱されているadbが古いので、Genymotionを最新の2.3.1以降にするか、/Applications/Genymotion.app/Contents/MacOS/tools/adbを最新のものに差し替えます。

以下のようにシンボリックリンクを張っておくのが良いです。

$ cd /Applications/Genymotion.app/Contents/MacOS/tools/
$ mv adb adb.bak
$ ln -s $SDK_ROOT/platform-tools/adb adb

2. 参照しているadbが古い
「Use custom Android SDK tools」にチェックが入っている場合、設定したパスにおけるadbが古い場合があります。パスが正しいか確認し、SDK ManagerでAndroid SDK toolsを最新にしましょう。


以上です。