This post is also available in: English-US (英語)
Android端末もしくはエミュレータを利用していて、デバッグビルドしようとしたら以下のようなエラーに遭遇したので、メモを備忘録的に残しています。
adb server version (41) doesn't match this client (40); killing...
エラーメッセージは、ローカル開発環境での adbサーバーのバージョンが、Android端末もしくはエミュレータ(Genymotionとか)で利用しているadbサーバーとのバージョンが不一致であるという事らしいです。
やった対処法その1.adbサーバーを停止して再度起動させる
adbサーバーを停止するコマンドは
adb kill-server
そして、起動するコマンドは
adb start-server
もしくは、adb devices コマンドでも、adbサーバーが停止している状態の際には、起動することができます。
やった対処法その2.AndroidSDKが異なるものを利用している可能性を疑う
個人的に、上記の方法では解決しなかったので掘り下げて考えてみると、ローカル開発環境で利用中のAndroidSDKと、Androidエミュレータ(Genymotionとか)で利用しているAndroidSDKが別のものでした。
なので、本プロジェクトで利用するAndroidSDKのPATHを統一して、adbサーバーを停止/再起動して解決しました。
AndroidSDKが違うバージョンで動いている可能性として、以下のようなものが考えられますので、現在のプロジェクトで利用するAndroidSDKのPATHを統一する必要があります。
・AndroidStudio由来のAndroidSDK
・Androidエミュレータ(Genymotionとか)でPATHを通しているAndroidSDK
・単体でインストールしたAndroidSDK(コマンドラインツール)由来のAndroidSDK
最後に、adbサーバーを停止/再起動する必要があります。