目的
エミュレーター/シミュレーターやAndroid端末からローカルPC上のサーバを参照する場合は、少しコツがいる感じがします。
http://localhost/
や、http://127.0.0.1/
だと繋がりません。
その対応メモ
環境
- Android Studio 4.0.1
- Mac PC
参照サイト
Android Studio Android Emulator のネットワークを設定する
Android Studio ネットワーク セキュリティ構成
対応メモ
http通信の許可
まず、http接続となると思うので、http通信できるように設定する必要があると思います。
res/xml/
配下にnetwork_security_config.xmlというファイルを作成。
xmlフォルダから無いので作成した。
network_security_config.xmlの内容は以下。
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config>
<domain includeSubdomains="true">10.1.1.1:8080</domain>
</domain-config>
</network-security-config>
次にAndroidManifestファイルより、上記作成ファイルを参照するようにする。
<manifest
...
<application
...
android:networkSecurityConfig="@xml/network_security_config"
...
エミュレーターからの通信
エミュレーターからローカルサーバに通信する場合、上記で述べたとおり、localhostなどでは通信できなくなっている。
代わりに以下
10.0.2.2
を利用する。
開発マシンのアドレス 127.0.0.1 は、エミュレータ固有のループバック インターフェースと一致することになります。
端末からの通信
次にAndroid端末からだけど、こちらは10.0.2.2
とかではない。
127.0.0.1とかでもないですよ。
PCそのものに設定されているIPアドレスを設定してください。
PCに割り振られているIPアドレスはMacの場合、ifconfig
で確認。
実はちょっと引っかかった。。。