※追記:この記事の内容はAndroi1.6までの内容であり、Android 2.0以降では適用できません
詳細は、以下のGoogle codeの書き込みを参照してください
http://code.google.com/p/android/issues/detail?id=5508
→ Android2.2 ではAndroid2.0/2.01/2.1の不具合が解消され、
-http-proxy http://xxx.xxx.xxx.xxx:8080 などの方法で使用できることを確認しました。
Androidエミュレータのプロキシ設定について、
Googleさんの公式ドキュメントは、
こちら(http://code.google.com/intl/ja/android/reference/emulator.html#proxy)にあります。
下記のような症状でお困りの方が対象です。
- ブラウザを起動しても応答がない
- 「Web page not available」と表示される
- 「! The page at 'http://... ERROR [object Object」]と表示される
設定方法の要点だけ言えば、
エミュレータ(emulator)起動時に、以下のような引数を追加して起動すれば良いということです。
(以前(m3-rc22a)は、asb shellからsqliteでsettings.dbを書き換えてた方法の別のやり方です。)
- プロキシ認証が不要な場合
emulator -http-proxy http://<machineName>:<port>
- プロキシ認証が必要な場合
emulator -http-proxy http://<username>:<password>@<machineName>:<port>
※<machineName><port>などのカッコ<>は不要です
※上手くいかない場合、machiNameのホスト名(ドメイン名)をIPアドレスを直うちしてみてください
※Android 1.0 SDK, Release 1をお使いの方は、Android 1.0 SDK, Release 2に移行してみてください(当方は何故か、これで解決しました。Release 1のエミュレータヘルプで、-http-proxy(ハイフン)でなく-http_proxy(アンダースコア)と表示されるのと関係あるのかな?)
上手くいけば、デフォルトでインストールされているBrowser(ブラウザ)アプリでWebにアクセスできます。
エミュレータを手動で起動している方は、Windowsとかだと、ショートカットを作成し、リンク先へ引数を追加してあげれば次回以降、ショートカットを呼び出すだけです。
Eclipseをお使いの方は、前述の方法で、先にエミュレータを起動しておく。。。でも可能ですが、Eclipseで設定しておく方法をお勧めします。
Eclipseで設定する方法は、
EclipseのWindowメニューからPreferencesを選択し、
Android > Launch の Default emulator options に
上記引数(-http-proxy~)を追加し、Apply > OKを押してください。
※追記:Android2.2では上記方法で使用できることを確認しました
ただし、設定が有効になるのは、これ以降に作成したプロジェクトであるため、
既存のプロジェクトに反映させるには、
EclipseのRunメニューからRun/Debug Configurationsを選択し、
左側のペインで目的のプロジェクトが選択されている状態で、
Targetタブを選択し、
Additional Emulator Command Line Optionsに上記引数(-http-proxy~)を追加してください。
(ここで設定する場合、プロキシ認証が必要な場合でも、認証をつけると上手くいかず、認証の記述を外すと上手くいく場合がありますので、上手くいかない場合には、諦めずにトライしてみてください。)
※2009/7/9追記:それでも上手くいかない場合には、こちらの方法も試してみてください
「[Android] Android 1.5 エミュレーターのプロキシー設定 - adakoda」
