java.net.UnknownHostException:サーバーのホスト名が無効です:ローカル

エラーを解決するためには、どのような手順を踏めばよいのでしょうか。

java.net.UnknownHostException: Invalid hostname for server: local

Androidのエミュレータで新しいバーチャルホスト名を追加しましたが、結果は次のようになります。

 java.net.UnknownHostException virtualhostname at 
  java.net.InetAddress.lookUpHostByName(InetAddress.java:506)

PCでバーチャルホストのURLを入力すると、表示上は動作しています。また、エミュレータ上で動作させてLogcatで確認すると、HTTPステータスが200や202、あるいはエラーコードの番号を読み取ることも確認することもできませんでした。単にUnknownHostExceptionが返ってくるだけでした。

ソリューション

この例外が実際に言っているのは、"local"という名前の既知のサーバーが存在しないということです。推測するに、あなたはローカルコンピュータに接続しようとしているのではないでしょうか。ホスト名を "localhost" にするか、あるいは 127.0.0.1::1 (最後のものはIPv6)にしてみてください。

javadocs](http://docs.oracle.com/javase/7/docs/api/java/net/UnknownHostException.html)より

ホストの IP アドレス ホストのIPアドレスが決定できないことを示すためにスローされます。

127.0.0.1::1"localhost"`は常にループバックインターフェースであるべきなので、これが動作しないとなると本当に驚きです。

もし本当にネットワーク上に "local"というサーバーがあるのなら、DNSの設定を調べるか、hostsファイルに追加してみてください。

解説 (1)

java.net.UnknownHostException:ホストは未解決です。

ホストのIPアドレスが特定できないことを示すためにスローされます。

この例外は、有効な無線LANに接続しているが、ルーターがインターネットを受信していない場合にも発生します。これを再現するのは非常に簡単です。

1.有効な無線LANに接続します。 2.ルーターが接続されている状態で、ルーターからケーブルを外します。

すると、こんなエラーが出ます。

これを解決することはできませんが、潔くユーザーに通知することはできます。(例えば - "Unable to make a connection")

解説 (5)

ローカルコンピュータに接続しようとしています。ホスト名を"localhost"に変更するか、または ::/ に変更してみてください - 最後のものはipv6です。

解説 (0)