たまに忘れるので、メモとして。
例えば1台のPCでAndroid emulatorとPHPなどのWeb Server側の両方を平行して制作していたとする。
この時に、何も考えてないとAndroid エミュレータからサーバに接続しようととして、Android エミュレータでIPアドレスにlocalhost(127.0.0.1)を指定してしまう。
実はこれは意味がない。何故ならlocalhostだと自分自身(つまりAndroidエミュレータ)を指すから。なので、当然サーバーにはアクセスできない。
で、その解決方法は以下の通り。
解決方法
このあたりは、Android エミュレータではちゃんと考えられており、特別なIPアドレスが用意されている。先の例では「10.0.2.2」を指定するとサーバに接続できる。このような特別なIPアドレスは他にもいろいろ用意されている。
IPアドレス | 概略 |
---|---|
10.0.2.1 | ルータ/ゲートウェイアドレス |
10.0.2.2 | エミュレータが起動しているPCを指すlPアドレス |
10.0.2.3 | DNS サーバ |
10.0.2.4/10.0.2.5/10.0.2.6 | セカンドDNSサーバ、サードDNSサーバ... |
10.0.2.7 | エミュレータデバイスのethernet interface |
127.0.0.1 | エミュレータのloopback |
これらはAndroid Emulator | Android Developersに書かれている。
こういう誰でも困りそうな事は大抵ちゃんと対策されているものなので、困った時はちゃんとマニュアル読みましょうー。