Androidエミュレータ:adb server version (xx) doesn’t match this client (xx)

記事公開日:
最終更新日:

This post is also available in: 英語

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サーバーを停止/再起動する必要があります。

About
Amelt.net,LLCの創業者で、費用対効果の高い統合webマーケティングによりビジネスパートナーとして継続的にサポート。詳しいより。ブログの更新情報TwitterLinkedIn、またRSSfeedlyにてお知らせしていますのでフォローよろしくお願い致します。