2

Eclipse で動作するように、Oracle VirtualBox を使用して Android x86 実行マシンを構成しようとしています。仮想マシンを「オンライン」にするのに問題があります。Android Terminal Emulator で次のように入力して、電話を adb に接続しました。

ifconfig eth0 192.168.40.1 netmask 255.255.255.0
route add default gw 192.168.40.1 dev eth0

その後、cmd に切り替えて adb connect localhost と入力しました

しかし、仮想 Android で Eclipse を使用してテスト コードを実行しようとすると、Android デバイス チューザー メニューに表示されません。さらに、adb devicescmd と入力すると、次のような応答が返されました。

List of devices attached
localhost:5555   offline

もう 1 つ気になる点は、VM をシャットダウンした後、デバイスに接続するために、再起動するたびに端末にコマンドifconfigとコマンドを再度入力する必要があることです。route add

デバイスをオンラインにするにはどうすればよいですか?

編集: 重要な場合、VMはNATネットワークを介して通信するように構成されています。これは私のポート転送ルールがどのように見えるかです: プロトコル: TCP

ホスト IP: *

ホスト ポート: 5555

ゲスト IP: *

ゲストポート: 5555

EDIT2 関連する質問:エラー: デバイスがオフラインです

EDIT3: 考えられる解決策: Android デバイス チューザー - デバイスがオフラインのようです

4

4 に答える 4

5

これは、Android VM ターミナル エミュレータ タイプで tcpip を介して adb を有効にするよりもはるかに簡単です。

adb tcpip 5555

次に、Eclipse マシンのコマンド ラインから adb 経由で接続します。

adb connect 192.168.40.1:5555

VM は、Eclipse のデバイス ビューだけでなく、adb デバイス経由でも利用できるはずです。

于 2012-09-01T17:52:14.647 に答える
4

Android アプリケーションの開発を開始したとき、同じ問題に対処しなければなりません。VirtualBox guideNAT はホスト ネットワークとゲスト システムでの構成を必要としないことを読みました。このため、VirtualBox のデフォルトのネットワーク モードです。NAT が有効になっている仮想マシンは、ルーターを介してインターネットに接続する実際のコンピューターのように機能します。この場合の「ルーター」は、trac を仮想マシンとの間で透過的にマッピングする VirtualBox ネットワーク エンジンです。VirtualBox では、このルーターは各仮想マシンとホストの間に配置されます。デフォルトでは仮想マシンは互いに通信できないため、この分離によりセキュリティが最大化されます。NAT モードの欠点は、ルーターの背後にあるプライベート ネットワークのように、仮想マシンが外部のインターネットから見えず、到達できないことです。ゲスト オペレーティング システムによって送信されたネットワーク フレームは、VirtualBox の NAT エンジンによって受信されます。これにより、TCP/IP データが抽出され、ホスト オペレーティング システムを使用して再送信されます。ホスト上のアプリケーション、またはホストと同じネットワーク上の別のコンピューターに対して、ホストに属する IP アドレスを使用して、ホスト上の VirtualBox アプリケーションによってデータが送信されたように見えます。VirtualBox は、送信されたパッケージへの応答をリッスンし、パッケージを再パックして、プライベート ネットワーク上のゲスト マシンに再送信します。
仮想マシンは、VirtualBox に統合された DHCP サーバーからプライベート ネットワーク上のネットワーク アドレスと構成を受け取ります。このようにして仮想マシンに割り当てられた IP アドレスは、通常、ホストとはまったく異なるネットワーク上にあります。仮想マシンは Virtual-Box 内部のプライベート ネットワークに接続され、ホストからは見えないため、ホスト マシンや同じネットワーク上の他のコンピューターはゲスト上のネットワーク サービスにアクセスできません。ただし、物理ルーターと同様に、VirtualBox は、ポート フォワーディングを通じて、選択したサービスをゲストの外で利用できるようにすることができます。これは、VirtualBox がホスト上の特定のポートをリッスンし、そこに到着したすべてのパケットを同じポートまたは別のポートでゲストに再送信することを意味します。だから、実行cmd、VirtualBox がインストールされているフォルダーと VBManage.exe があるフォルダーに移動し、TPC ポート フォワーディングを適用するために次のように入力します。

VBoxManage modifyvm "NameOfYourAndroidVM" --natpf1 adb,tcp,*,5555,*,5555

これで、次のように adb を介して仮想マシンに接続できます。

adb connect localhost
于 2012-05-26T08:08:17.353 に答える
0

pridge ネットワーク モードを使用するように vm を構成し、ネットワーク上で dhcp サーバーを有効にするだけです。

于 2014-08-02T16:54:24.430 に答える