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
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
おそらく、システムの2つの異なる場所に2つのバージョンのadb
があります。実行中のサーバーのバージョンは39
およびadb
クライアントバージョンは40
。これは、PCにadb
を1つだけ保持することで解決できます。あなたはそれを以下に示すように理解することができます-
Linuxでは、以下のコマンドは、adbバイナリがパスに追加された場合にadbの場所を提供します。
which adb
adb
がパスに追加されていないのにこのエラーが発生する場合は、以下のコマンドを使用してadbを検索してください。
locate adb
adb
クライアントが上記の場所以外にある場合は、上記のパスに最新バージョンを追加し、古いadbバージョンを削除できます。
Windowsを使用している場合は、2つのadbの場所を把握し、1つの場所にのみ保持します。
実行
tasklist | findstr adb
次に、重複したプロセスを強制終了します
TASKKILL /PID "PID_NUMBER" /f
私の場合、Windowsマシンに「AirDroid」をインストールし、「AirDroid_adb.exe」を実行しました。動作させるには、それを強制終了する必要がありました。私は彼らが古いバージョンのadbを使用していることを報告しました、そして彼らはうまくいけばそれを修正するでしょう。
Windows用の実用的な簡単な答え:
adb実行可能ファイルのサブディレクトリにサイドロードファイル(whatever.bin)があることを確認してください。
adb実行可能フォルダとサブディレクトリがPATHにあることを確認してください(WindowsでPATHのDOSコマンドを検索してください)
サイドロードファイルと同じディレクトリでコマンドプロンプトを開く
たとえば、コマンドを入力します。
adb sideload mynewrom-5.4.3.2.1.bin
(デバイスはリカバリ状態である必要があります-送信する前にサイドロード状態)
私はこれが少し古いことを知っていますが、この問題があり、Vysorがインストールされている場合は、Vysorアプリケーションフォルダーでadb.exe(およびAdb * .dllファイル)を探して置き換えることで解決できます- from your Android SDKフォルダー。私はWindowsマシンを使用しており、関連するパスは次のとおりです。
私のマシンでは、関連するファイルは次のとおりです。
この後、この投稿の他の回答で説明されているように、既存のADBタスクを強制終了する必要があります。