Android vmはgenymotionを介して実行されます。ただし、adb経由で接続しようとすると、次のエラーメッセージが表示され続けます。
adb server version (41) doesn't match this client (39); killing...
私は他の多くの人がこの問題を抱えているのを見ました、そして私はすべてを試しました、そして、なぜか私はまだそれを動かすことができません。 Genymotionのデフォルトの代わりにAndroid SDKを使用してGenymotionを使用しています。
他のいくつかのインストール手順でgenymotionを正しく動作させようとすると、adb --version
を実行すると次のようなエラーが発生する可能性があります。
Android Debug Bridge version 1.0.39
Version 1:8.1.0+r23-5~18.04
他の誰かがこの問題に遭遇しましたか?それが違いを生む場合、私は現在Ubuntu 18.04を使用しており、私のエミュレーターはwifiに接続されていません。事前に返信してくださったすべての方に感謝します。
Genymotionで Settings → ADB インストールしたSDKを選択します。
Genymotionが提供するバージョンの代わりにVM SDK platform-tools ADBを使用してGenymotion Androidに接続しようとすると、エラーメッセージが表示されます。ただし、Android SDKが提供するADBを使用するようにGenymotionを構成することは試みていません。
Genymotionが提供するバージョンに接続してみます。 Genymotionは、配置された構成を尊重していないようです。
これは私が観察した問題です:
そのスクリーンショットに示すように。この問題は、Genymotionで使用されているバージョンと一致しないバージョンのADBに接続しようとすると確実に発生します。
Genymotionがどのバージョンを使用しているかを確認するには(つまり、構成を反映していることを確認するには)、次のコマンドを実行します。
_netstat -tlpn | grep -i adb
_
これにより、接続をリッスンしているADBサーバーのプロセスIDがわかります。そのプロセスIDを使用すると、ADBのどのバージョンが_ls -la /proc/ADB_PROCESS_ID/
_を介して実行されているかを判断できます(明らかに、数値のプロセスIDで置き換えます)。
たとえば、次の図に示すように、私の側で実行されているADBサーバーは_/opt/genymobile/genymotion/tools/adb
_であることがわかります。
Genymotionが、使用する予定のバージョンのADBを使用しているように見える場合は、_which adb
_、続いてreadlink "$(which adb)"
を実行することをお勧めします。その結果が予期しないものである場合は、正しいadb
へのディレクトリがPATH
環境変数に早く表示されるようにするか、明示的にadbを指すadbのエイリアスを追加してみてください。正しいパス。 (実行する他のアプリケーションは、エイリアスを尊重するよりもPATH
を尊重する可能性が高いため、エイリアスを使用するのではなく、PATH
の前に追加します。)
Genymotionが参照するADBパスがADBが参照するパスと異なることが判明し、PATH
を変更してこれを解決する場合は、ホームディレクトリの_.bash_profile
_ファイルを変更する必要があります次の行を追加します(必要に応じて変更します)。
_export PATH="/path/to/adb-directory:$PATH"
_
その後、_source ~/.bash_profile && hash -r
_を実行して、変更を有効にする必要がある場合があります。その後、すべてが正常に機能した場合、上記の_which adb
_コマンドを実行すると、ADBへの目的のパスが表示されます。
これは実際に私の問題を解決しましたSudo cp ~/Android/Sdk/platform-tools/adb /usr/bin/adb