2011-07-21 434 views
6

ここでCMDラインである、ここでAndroidのエミュレータネットワーキングとが必要です

"C:\Progra~2\Android\android-sdk\tools\emulator.exe" -avd Touch -netspeed full -netdelay none -http-proxy localhost:3128 -debug-proxy 

あるコンソールアウト私はエミュレータからgoogle.comを開こうとすると:

ここ
server name 'localhost' resolved to 127.0.0.1:3128 
proxy_http_setup: creating http proxy service connecting to: localhost:3128 
server name 'localhost' resolved to 127.0.0.1:3128 
proxy_http_setup: creating HTTP Proxy Service Footer is (len=2): 
' 
' 
http_service_connect: trying to connect to (null) 
http_service_connect: using HTTP rewriter 
tcp:(null)(880): connecting 
tcp:(null)(880): connected to http proxy, sending header 
tcp:(null)(880): sending 27 bytes: 
>> 43 4f 4e 4e 45 43 54 20 28 6e 75 6c 6c 29 20 48 CONNECT (null) H 
>> 54 54 50 2f 31 2e 31 0d 0a 0d 0a     TTP/1.1.... 

tcp:(null)(880): header sent, receiving first answer line 
tcp:(null)(880): received 'HTTP/1.0 400 Bad Request' 
tcp:(null)(880): connection refused, error=400 
http_service_connect: trying to connect to (null) 
http_service_connect: using HTTP rewriter 
tcp:(null)(888): connecting 

をデバッグウィクショナリー例から例外があります
Caused by: java.net.ConnectException: en.wiktionary.org/91.198.174.232:80 - Connection refused 

私のプロキシについて:私のローカルマシンではイカで、それは親を通してルーティングするように設定されていますプロキシ(認証あり)。これはブラウザ/ Android SDKローダー/ IntelliJなどでうまく動作しますが、エミュレータのネットワーキングは機能しません。

主な混乱は

tcp:(null) 

任意の提案ですか?

+0

同じ問題が発生しています。 Android SDK 12にアップデートしたときに開始されたように見えます。 – Daddyboy

答えて

0

Androidエミュレータからシステムのlocalhostを参照しているので、http://10.0.2.2:8080/を使用する必要があります。これは、アンドロイドエミュレータが仮想マシン内で動作するため、ここでは127.0.0.1またはlocalhostがエミュレータ自身のループバックアドレスになるためです。また、プロパティはデフォルトでこれらの値に設定されているため、-netspeed full -netdelay noneを入力する必要はありません。エミュレータネットワークの詳細については、thisをご覧ください。

EDIT:

あなたは、あなたの状況に応じて別のアドレスでlocalhostを交換してください。ルータ/ゲートウェイアドレスの場合は、10.0.2.1に置き換えます。ホストループバックインターフェイス(つまり、開発マシンの127.0.0.1)の特別なエイリアスの場合は、10.0.2.2に置き換えます。最初のDNSサーバーの場合は、10.0.2.3に置き換えます。オプションの第2、第3、第4のDNSサーバーの場合は、10.0.2.4/10.0.2.5/10.0.2.6に置き換えます。エミュレートされたデバイスのネットワーク/イーサネットインターフェイスがエミュレートされている場合は、10.0.2.15に置き換えます。エミュレートされたデバイスのループバックインターフェイスの場合は、127.0.0.1に置き換えます。また、開発マシンのアドレス127.0.0.1はエミュレータ独自のループバックインターフェイスに対応しているため、開発マシンのループバックインターフェイス上で実行されているサービスにアクセスする場合は、代わりに特別なアドレス10.0.2.2を使用する必要があります。詳細についてはhereをクリックしてください。

+0

エミュレートされたデバイス内で動作するアンドロイドソフトウェアではなく、エミュレータなどのホストソフトウェアに 'localhost'という参照があるように見えるため、 。 –

+0

状況に応じて入力できるその他のアドレス –

+0

これらの特別なアドレスはエミュレータ内でのみ意味がありますが、エミュレータプログラム自体のコマンドラインオプションはPCのネットワークビューを見るものであり、エミュレートされたアンドロイドではありませんこのエミュレータの内部で実行され、この特別なシミュレートされたネットワークが表示されます。確かに、1つの選択肢は、アンドロイドエミュレータのネットワーキング内部の「知識」を全く持たない汎用環境変数からプロキシを選択させることです。 –

2

エミュレータでは、特にWindowsの最近のバージョンでは、プロキシサポートに関する多数の問題が記録されています。いくつかは、ネットワーク設定ではなく、全体としてのエミュレータのプロキシを設定するように、役立つかもしれないそこでの回避策を提案あり

http://code.google.com/p/android/issues/detail?id=5508&q=emulator%20proxy&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars

:ここでは、バグレポートを参照してください。

1

私は同じ問題があります(Mac OS X - Android SDKツール12)。 これはlogcatのログです。

08-04 15:33:41.576:INFO/java.net.Socket(256):www.google.com/209.85.148.104(80):java.net.ConnectException :www.google.com/209.85.148。104:NONE/- - text/htmlのそれはと思われ

から0:

1312464815.525 0 172.16.1.1 TCP_DENIED/400 1587 CONNECT 80の接続は

私はプロキシとしてイカを使用して、ログがあるを拒否しました何かが失われる...

私は、エミュレータが要求に私のdnsを使用しようとしていることにも気付きました。

関連する問題