Help us understand the problem. What is going on with this article?

Android Emulatorでnet::ERR_CONNECTION_REFUSEDが出た時の対処法

WebViewでlocalhostを参照する実装をAndroid Emulatorで見る際、net::ERR_CONNECTION_REFUSEDというエラーが表示された。
スクリーンショット 2020-02-16 18.45.52_.png

接続先はhttp://localhost:3000/を指定していたのだが、Android Emulatorは仮想環境上で実行されているため、ホストマシンで直接実行しているローカルサーバーには接続できない模様。

エミュレータの各インスタンスは、仮想ルーターおよびファイアウォール サービスの背後で実行されます。この仮想ルーターおよびファイアウォール サービスによって、各インスタンスは開発マシンのネットワーク インターフェースと設定、そしてインターネットから分離されます。エミュレートしたデバイスでは、開発マシンやネットワーク上のその他のエミュレータ インスタンスは認識されず、イーサネット経由でルーター / ファイアウォールに接続されていることだけが認識されます。

各インスタンスの仮想ルーターは、10.0.2/24 ネットワーク アドレス空間を管理します。ルーターによって管理されるすべてのアドレスは、10.0.2.xx の形式を持ちます(xx は数字)。この空間内のアドレスは、エミュレータ / ルーターによって次のように事前に割り当てられます。

Android Emulator のネットワークを設定する  |  Android デベロッパー  |  Android Developers

Android Emulatorからホストマシンのローカルループバックアドレス(127.0.0.1)を参照するためには、ネットワークアドレス10.0.2.2を使用する必要がある。

ネットワーク アドレス 説明
10.0.2.1 ルーター / ゲートウェイ アドレス
10.0.2.2 ホスト ループバック インターフェースへの特殊エイリアス(開発マシンの 127.0.0.1 など)
10.0.2.3 1 番目の DNS サーバー
10.0.2.4 / 10.0.2.5 / 10.0.2.6 オプションの 2 番目、3 番目、4 番目の DNS サーバー(存在する場合)
10.0.2.15 エミュレートしたデバイスのネットワーク / イーサネット インターフェース
127.0.0.1 エミュレートしたデバイスのループバック インターフェース

WebViewの接続先をhttp://10.0.2.2:3000/に指定することで、localhostへアクセスすることができた。
スクリーンショット 2020-02-16 18.32.11_.png

これまでAndroid Emulator上でlocalhostを参照する機会がなかったため、大変勉強になった。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした