web-dev-qa-db-ja.com

このadbサーバーのバージョンがAndroidのこのクライアントエラーと一致しないことを解決する方法は?

adb server version (39) doesn't match this client (40); killing...
could not read ok from ADB Server
* failed to start daemon
error: cannot connect to daemon
adb: error: failed to get feature set: protocol fault (couldn't read status): Connection reset by peer
* daemon not running; starting now at tcp:5037
* daemon started successfully
- waiting for device -
error: protocol fault (couldn't read status): Connection reset by peer
1
vijay kumar

adb devicesコマンドを実行しても同じ問題が発生します。

adb devices
List of devices attached
adb server version (36) doesn't match this client (40); killing...
* daemon started successfully
2322dc3d    device

コマンドwhich adbを実行しました。これにより、前のコマンドが使用していたadbの場所がわかりました。私の場合、出力は次のとおりです。

which adb
/usr/bin/adb

次に、whereis adbコマンドを実行して、adbの場所を取得しました。

whereis adb
adb: /usr/bin/adb /home/arefin/Android/Sdk/platform-tools/adb 
/usr/share/man/man1/adb.1.gz

mvコマンドを使用してadbを/usr/binディレクトリから移動することで、この問題を解決します。

/usr/bin$ `Sudo mv adb /home/arefin/Desktop/`

この後、このコマンドadb kill-serverを実行してから、adb devicesを実行しました。今回はすべて問題ないことがわかりました。

私のAndroid $HOME/.profileファイル内の開発関連パスは次のとおりです。

export Android_HOME=/home/arefin/Android/Sdk
export PATH=$PATH:$Android_HOME/platform-tools
export PATH=$PATH:$Android_HOME/tools
export PATH=$PATH:$Android_HOME/emulator
export PATH=$PATH:$Java_HOME/bin
6

おそらく、システムの2つの異なる場所に2つのバージョンのadbがあります。実行中のサーバーのバージョンは39およびadbクライアントバージョンは40。これは、PCにadbを1つだけ保持することで解決できます。あなたはそれを以下に示すように理解することができます-

Linuxでは、以下のコマンドは、adbバイナリがパスに追加された場合にadbの場所を提供します。

which adb

adbがパスに追加されていないのにこのエラーが発生する場合は、以下のコマンドを使用してadbを検索してください。

locate adb

adbクライアントが上記の場所以外にある場合は、上記のパスに最新バージョンを追加し、古いadbバージョンを削除できます。

Windowsを使用している場合は、2つのadbの場所を把握し、1つの場所にのみ保持します。

2
Rilwan

実行

tasklist | findstr adb

次に、重複したプロセスを強制終了します

TASKKILL /PID "PID_NUMBER" /f
1
Ricardo Fumachi

私の場合、Windowsマシンに「AirDroid」をインストールし、「AirDroid_adb.exe」を実行しました。動作させるには、それを強制終了する必要がありました。私は彼らが古いバージョンのadbを使用していることを報告しました、そして彼らはうまくいけばそれを修正するでしょう。

0
Dennis Bareis

Windows用の実用的な簡単な答え:

  • adb実行可能ファイルのサブディレクトリにサイドロードファイル(whatever.bin)があることを確認してください。

  • adb実行可能フォルダとサブディレクトリがPATHにあることを確認してください(WindowsでPATHのDOSコマンドを検索してください)

  • サイドロードファイルと同じディレクトリでコマンドプロンプトを開く

  • たとえば、コマンドを入力します。

    adb sideload mynewrom-5.4.3.2.1.bin
    

(デバイスはリカバリ状態である必要があります-送信する前にサイドロード状態)

0
Codemonkey

私はこれが少し古いことを知っていますが、この問題があり、Vysorがインストールされている場合は、Vysorアプリケーションフォルダーでadb.exe(およびAdb * .dllファイル)を探して置き換えることで解決できます- from your Android SDKフォルダー。私はWindowsマシンを使用しており、関連するパスは次のとおりです。

  • バイザー
    • C:\ Users \\ AppData\Roaming\Vysor\crx\gidgenkbbabolejbgbpnhbimgjbffefm\app-2.1.7.crx-unpacked\native\win32 *
    • (バージョンなどによってパスが異なると思いますが、うまくいけばわかります。)
  • APK
    • C:\ Users \\ AppData\Local\Android\SDK\platform-tools

私のマシンでは、関連するファイルは次のとおりです。

  • adb.exe、
  • AdbWinApi.dll、
  • AdbWinUsbApi.dll

この後、この投稿の他の回答で説明されているように、既存のADBタスクを強制終了する必要があります。

0
Dave Welling