web-dev-qa-db-ja.com

ADBサーバーのバージョン(36)がこのクライアントと一致しません(39){Genymotionを使用していません}

テストデバイスにAndroid Oプレビューをインストールした後、私のADBが動作を停止し、私にこのエラーを出し始めました。

adb server version (36) doesn't match this client (39); killing... adb E 03-27 08:01:55 2925 147690 usb_osx.cpp:333] Could not open interface: e00002c5 adb E 03-27 08:01:55 2925 147690 usb_osx.cpp:294] Could not find device interface error: could not install *smartsocket* listener: Address already in use ADB server didn't ACK * failed to start daemon * error: cannot connect to daemon

この問題に関して私が遭遇した唯一の答えは、GenymotionがADBと同期していないことですが、Genymotionは使用していません。任意の助けは大歓迎です。私はすでにAndroid Studioとそのすべてのツールや設定を削除して再インストールしましたが、まだこの問題があるようです。

63
HTMLlama

私の場合、このエラーは私の環境のadbパスを~/.Android-sdk/platform-toolsに設定したときに発生しました(これは例えばAndroid-platform-toolsがhomebrew経由でインストールされたときに起こります)、バージョンは36ですが、Android Studioプロジェクトには次のパスがあります~/Library/Android/sdk 39歳でした。

パスをplatform-toolsから~/Library/Android/sdk/platform-toolsに変更しました。エラーは解決しました

43
Deni Erdyneev

これは私のために働きます...

  • genyMotion設定 - > ADBタブに行きます
  • [Genymotion Androidツールを使用]ではなく、[カスタムAndroid SDKツール]を選択してから、インストールされているSDKを参照してください。
81
Alecs

まず最初に、タイトルから「{Not using Genymotion}」を削除してください。それは私のようなGenymotionが何であるかを知らない読者をそらすものです。ここでのばかげたことは、「GenyMotionの設定に移動する」という21の答えがあることです。

他のすべてが見逃しているという主な点は、バックグラウンドで実行中のadbプロセスがあるときにこのエラーが発生するということです。だから最初のステップはそれを見つけてそれを殺すことです:

ps aux | grep adb
user          46803   0.0  0.0  2442020    816 s023  S+    5:07AM   0:00.00 grep adb
user          46636   0.0  0.0   651740   3084   ??  S     5:07AM   0:00.02 adb -P 5037 fork-server server

見つけたら、kill -9 46636を使ってそれを殺すことができます。

私の場合、問題はGapDebugから来た古いバージョンのadbでした。 GapDebugを使ってこれを入手した場合は、それを終了してから実行してください。

adb kill-server
adb start-server

gapDebugをバックグラウンドで使用している場合、adbサーバーを強制終了すると、GapDebugはすぐに独自のコピーを開始し、起動サーバーが無視される

13
ishahak

あなたには2つのバージョンのADBがあります$ /usr/local/bin/adb version Android Debug Bridge version 1.0.36 Revision 0e9850346394-Android

$ /Users/user/Library/Android/sdk/platform-tools/adb version Android Debug Bridge version 1.0.39 Revision 3db08f2c6889-Android

PATHがどちらを指しているか(echo $PATH)はわかりますが、一方のバージョンではadb stop-server、もう一方のバージョンではadb start-serverで修正しました。

7
user1221780

さらにもう1つの可能性のある解決策を追加するために、ClockworkmodによるHeliumはそれ自身のADBバージョンが組み込まれていることを開始し続けました。 Helium Desktopアプリケーションを終了すると問題は解決します。

6
HeWhoWas

私はAndroid Studioでも同じ問題を抱えていました - adbサーバーのバージョン(37)がこのクライアント(39)と一致しません。私は次の解決策で直しました:

Android Studioで、[ツール] - > [Android] - > [SDK Manager]に移動します。

[SDKツール]タブで[Android SDKプラットフォーム - ツール]のチェックを外し、[適用]をクリックしてアンインストールします。

その後、Platform-Toolsフォルダーの名前をPlatform-ToolsOldに変更しました。

その後、SDKマネージャに戻り、Platform-Toolsに再度チェックマークを付けて再インストールします。

5
Benno

私は同じエラーがありました。私の場合、Appiumを使用して、2つのバージョンのADBがありました

$ /usr/local/bin/adbバージョン36

そして

$ /Users/user/Library/Android/sdk/platform-tools/adbバージョン39

解決策は次のとおりです。

  1. bash_profile内の$ PATHが以下を指していることを確認してください。/Users/user/Library/Android/sdk/platform-tools/

  2. adbサーバー:adb kill-serverを停止し、Appiumが停止していることを確認します。

  3. adbのバージョン36を削除します(またはバックアップのために名前を変更することもできます):rm /usr/local/bin/adb

  4. adbサーバーを起動します。adb start-serverまたはAppiumを起動します。

5
Ezetha

他の人が言ったように、あなたは2つのadbを走らせることができるでしょう。

  1. あなたのディストリビューションのAndroidツールをアンインストールしてください(zypperやyumなどを使ってください)

    # zypper -v rm Android-tools
    
  2. あなたの他のadbがどこにあるか見つけなさい

    # find /home -iname "*adb"|grep -i Android
    

    それがあったと言う。

    / home/developer/Android/Sdk /プラットフォームツール/ adb

  3. それから/ usr/binフォルダーにそれへのソフトリンクを作ります。

     ln -s /home/developer/Android/Sdk/platform-tools/adb  /usr/bin/adb
    
  4. それでは。

     # adb start-server
    
3
MarcoZen

私はあなたが実行している複数のadbサーバーを持っていると思う、genymotionはそれらのうちの1つであるかもしれませんが、Xamarin - Mac OS用のVisual Studioはadbサーバーを実行しています。

3
Nicolás Loaiza