26

virtualbox の Windows 7 仮想マシン内で Android 用モノ (別名モノドロイド) を動作させようとしていますが、携帯電話への adb 接続に問題があります。「adb devices」を実行して存在するデバイスを一覧表示すると問題は表示されませんが、「adb install」、logcat、または push を実行しようとするとハングします。現在、virtualbox にはこれに当てはまるバグがありますが、私よりも知識のある人が回避策を持っていることを望んでいました。

https://www.virtualbox.org/ticket/6620

Xamarin が自社製品の Linux ポートをリリースした場合や、私が Java に慣れた場合は、大まかに言えば問題になることはありませんが、これらは少し異なる問題だと思います。

4

6 に答える 6

32

ブライアンさん、考えられる回避策の 1 つは、VM ホストも ADB ホストにすることです。次に、VM クライアントを TCP / IP 経由で接続するだけです。その設定の一般的な考え方は次のとおりです。

  1. ホスト マシンに Android SDK をインストールします。を含む platform-tools パッケージのみが必要ですadb
  2. VM クライアントが Android デバイスの所有権を取得することを許可しないでください。そのため、VirtualBox USB フィルター ルールを無効にします。また、デバイスを取り外して再接続しても問題はありません。
  3. VM クライアントから、 を実行しますadb kill-servertskill adb確実にしてください。実行中の Eclipse のインスタンスがある場合は、実際にはバックグラウンドで起動するため、最初にそれらをシャットダウンする必要がadbあります。このステップをスキップしないでください。
  4. ホストから、 を実行しadb devicesます。すべてがうまくいけば (そうあるべきです)、デバイスがリストに表示されます。次のようになります (ポート番号に注意してください。マングリングはご容赦ください)。

    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
    List of devices attached
    015d2994ed200409    device
    

この時点で、ホストにはポート 5037 で実行されている ADB サーバーが必要です。これは、VM クライアントから を実行して確認telnet 10.0.2.2 5037でき10.0.2.2ます5037

  1. ここで、ホストから VM クライアントにポートを転送するか、ADB をホストの IP:port に直接接続する必要があります。あなたが私のような人なら、ADBHOST 変数と ANDROID_ADB_SERVER_PORT 変数の文書化が不十分で、簡単に失敗することに気付くでしょう。このため、sshVM クライアントからの単純なポート フォワーディング (おそらく Cygwin 経由) を検討してください。

    autossh -nNL5037:localhost:5037 -oExitOnForwardFailure=yes 10.0.2.2
    
  2. 最後に、adb devicesVM クライアントから実行します。「デーモンが実行されていません」と表示された場合は、ポート フォワーディングが失敗していることを意味します。それ以外の場合は、デバイスが表示され、終日 logcat を実行できるはずです。特筆すべき点の 1 つはadb、もちろん実際にデバッグ ブリッジを使用している場合を除いて、VM クライアントでデーモンを実行しないことです。

リモート マシンに接続されているネットワーク経由のデバイスをデバッグするために、同様のメカニズムを使用しましたが、うまく機能しました。

于 2012-09-24T01:33:35.920 に答える
3

私は同じ問題を抱えていて、約2時間検索しました。上記のすべての解決策を含むいくつかのアプローチを試しましたが、どれもうまくいきませんでした

私の状況

私のホストはarchlinuxで、ゲストはWindows 8.1でした。Windowsでフラッシュビルダーを実行していましたが、USBデバッグが機能せず、接続されたデバイスがnexus 5だったので、これらの手順に従いました

  1. virtualboxメニューからUSBコントローラーを有効にします マシン->設定->usb USBコントローラーを有効にし、USB 2.0 (EHCI)コントローラーを有効にしてから、デバイスを追加し(右側の+ボタンをクリック)、仮想マシンを起動します
  2. ここから最新の Google USB ドライバーをダウンロードして解凍する必要があります。
  3. コントロール パネルのデバイス マネージャーに移動し、デバイスを右クリックしてドライバー タブに移動し、[ドライバーの更新] をクリックしますサブフォルダー オプション) この後、デバイスは Windows によって認識され、Android デバイスにデバイスへのアクセスを許可するメッセージが表示されます。

私の場合、ドライバーを flashbuilder android ドライバー パスにもコピーする必要がありますが、おそらくあなたの状況ではこれは必要ありません

于 2014-04-10T19:03:22.723 に答える