EclipseのAndroidエミュレータでlocalhost Webサーバーページに接続するにはどうすればhttp://localhost
よいhttp://127.0.0.1
ですか?
私は試してみましたが、エミュレータは依然としてlocalhostのGoogle検索のように私の要求を受け入れます。さらに悪いことに、Webサーバーが正常に実行されているときにページが見つからなかったと言っています。
EclipseのAndroidエミュレータでlocalhost Webサーバーページに接続するにはどうすればhttp://localhost
よいhttp://127.0.0.1
ですか?
私は試してみましたが、エミュレータは依然としてlocalhostのGoogle検索のように私の要求を受け入れます。さらに悪いことに、Webサーバーが正常に実行されているときにページが見つからなかったと言っています。
回答:
localhostは、コードが実行されているデバイス、この場合はエミュレータを指します。
Androidシミュレーターを実行しているコンピューターを参照する場合は、代わりにIPアドレス10.0.2.2を使用してください。
詳しくはこちらから。
自宅のマシンで10.0.2.2を使用しましたが、職場では機能しませんでした。何時間もいじり回した後、Android仮想デバイス(AVD)マネージャーを使用して新しいエミュレーターインスタンスを作成し、最終的に10.0.2.2が機能しました。
他のエミュレータインスタンス(プラットフォームは同じ)の何が問題だったかはわかりませんが、10.0.2.2が機能しない場合は、新しいエミュレータインスタンスを作成してみてください。
ポート番号はhttp://10.0.2.2:8080/
どこか試してください8080
。それは完全に機能しました。試し10.0.2.2
てみてもうまくいきません。ポート番号を追加する必要があります。また、Microsoft IISがインストールされている場合は、(Windows OSを使用している場合は)コントロールパネルからその機能をオフにしてから、上記のように試してください。
ドキュメントによると:
10.0.2.2-ホストループバックインターフェイスへの特別なエイリアス(開発マシンでは127.0.0.1)
エミュレータネットワーキングに関するその他のトリックについては、エミュレータネットワーキングを確認してください。
エミュレータ「Nox App Player」のシステムホストIPアドレスを把握する必要がありました。これが私がそれを理解した方法172.17.100.2
です。
ip link show
コマンドを発行して、すべてのネットワークインターフェイスを表示します。特に興味深いのはeth1インターフェースでしたifconfig eth1
コマンドを発行し、netを172.17.100.15/255.255.255.0
172.17.100.1
、「172.17.100.2」でヒットしました。ファイアウォールが干渉するかどうかはわかりませんが、私の場合はそうではありませんでした多分これは他の誰かが他のエミュレータのためにそれを理解するのを助けることができます。
Windowsを使用している場合は、simbolシステムに移動してipconfigを記述し、マシンに割り当てられているIPを確認できます。
localhost:8000
エミュレータを実行するたびに以下のコマンドを実行することで、実際にを使用してマシンのローカルホストに接続できます(Macでのみテスト済み):
adb reverse tcp:8000 tcp:8000
Android Studioターミナルに置くだけです。
基本的には、リバースプロキシを設定します。リバースプロキシでは、電話で実行されているhttpサーバーがポートでの接続を受け入れ、コンピューターに接続するか、またはその逆を行います。
よくわかりませんが、このトピックはすでに解決されているかもしれませんが、最近Windowsマシンでこれを試してみたとき、多くの困難に直面しました。だから私の解決策は本当に簡単でした。このソフトをダウンロードしました http://www.lenzg.net/rinetd/rinetd.htmlして、ポートフォワーディングを作成する方法の指示に従い、Androidデバイスを正常に接続してasp.net localhostプロジェクトを作成し、ブレークポイントで停止しました。
私のrinetd.confファイル:
10.1.1.20 1234 127.0.0.1 1234
10.1.1.20 82 127.0.0.1 82
ここで、10.1.1.20は私のlocalhost ip、82と1234は私のポートです。また、簡単に使用できるようにバスファイルyournameofbathfile.batを作成し、そのファイルをrinedfolder内に置きます。私の入浴ファイル:
rinetd.exe -c rinetd.conf
このソフトを起動した後、aps.netサーバーを起動し、Androidデバイスまたはローカルネットワーク内の任意のデバイス(たとえば、Computer ABCがputtyを起動する)からアクセスしようとすると、すべてが機能することがわかります。ルーターの設定に行ったり、その他の複雑なことをする必要はありません。これがお役に立てば幸いです。楽しい。