Genymotionエミュレータを起動した後、ターミナルからadb Shell
を使用しようとすると、次のエラーが発生します。
adb server is out of date. killing...
cannot bind 'tcp:5037'
ADB server didn't ACK
* failed to start daemon *
error:
私は stackoverflowのこの回答 を読んでこのコマンドを実行しますkillall -9 adb
so実行したので、genymotion設定を変更してカスタムAndroid SDKツールを以下:
上記のスクリーンショットでわかるように、それも行いましたが、同じエラーメッセージが引き続き表示されます。
私のAndroid Studio ADBログは、adb Shell
を実行しようとするたびに次のメッセージを出力します。
DeviceMonitor: Adb connection Error:EOF
DeviceMonitor: Connection attempts: 1
私は新しい仮想デバイスを作成し、それを使用してみても成功しませんでした。
1.0.31以下の場合、adbを1.0.32に更新します
adb version
Android Debug Bridge version 1.0.31
wget -O - https://skia.googlesource.com/skia/+archive/cd048d18e0b81338c1a04b9749a00444597df394/platform_tools/Android/bin/linux.tar.gz | tar -zxvf - adb
Sudo mv adb /usr/bin/adb
Sudo chmod +x /usr/bin/adb
adb version
Android Debug Bridge version 1.0.32
これらの解決策はどちらも私にとってはうまくいきませんでした。
私のエラーを解決した解決策は、不足している/ Android/Sdk/toolsと/ Android/Sdk/platform-toolsの両方のディレクトリを環境PATH変数に追加することでした。これは、次のコマンドで実行できます。
export PATH=/home/{username}/Android/Sdk/tools:/home/{username}/Android/Sdk/platform-tools:$PATH
必ず独自のユーザー名をコマンドに挿入し、{username}をオペレーティングシステムのユーザー名に置き換えてください。
これを実行すると、コマンドラインで環境変数のPATH変数を検索して、adb実行可能ファイルの適切な場所を検索します。この環境変数を設定しないと、システムは正しい実行可能ファイルを探す場所がわかりません。
この問題の根本的な原因は、異なるバージョンのadbを実行しようとすることです。 PC(ホスト)側のadbは、adbとadb serverの2つの部分で構成されています。
adb <----> adb server <-------- USB -------> adbd(device)
adbとadbサーバーは実際には同じバイナリですが、最初にadbコマンドを発行したとき、adbサーバーはバックグラウンドで実行されています。その後、adbコマンドは、adbを実行するたびにどのadbサーバーに接続するかを確認します。まず、実行中のadbサーバーのバージョンを確認します。バージョンが一致しない場合は、「adbサーバーが最新ではありません。殺して...」これが唯一の理由です。
int adb_connect(const std::string& service, std::string* error) {
// first query the adb server's version
int fd = _adb_connect("Host:version", error);
...
if (version != ADB_SERVER_VERSION) {
printf("adb server is out of date. killing...\n");
fd = _adb_connect("Host:kill", error);
adb_close(fd);
/* XXX can we better detect its death? */
adb_sleep_ms(2000);
goto start_server;
}
この問題を解決するには、異なるバージョンのadbを実行する必要がないことを確認する必要があります。
[adbサーバーへのパス]/adbバージョン
このような出力:
Android Debug Bridge version 1.0.35
Revision 68de85bda98d-Android
「1.0.35」はバージョン番号です。
adbバージョン
一致しない場合は、次のことができます。