Androidエミュレータのプロキシ設定をセットアップする方法


110

Androidエミュレータ内のブラウザを使用したいのですが、自分のマシンでプロキシ設定を使用したいと思います。どうすれば設定できますか?

非常に優れたAndroidマニュアルを読んでいると、次のコマンドを使用してAndroidを起動する必要があると言われています。

emulator -avd myavd -http-proxy http://168.192.1.2:3300

しかし、私はまだエミュレーター・ブラウザーを使用できません。プロキシサーバーのIPアドレスを使用していることに注意してください。

何が悪いのですか?

回答:


147

最も簡単で最良の方法は次のとおりです。これはAndroid Emulator 2.2で行われました

  1. メニューをクリックします
  2. 設定をクリックします
  3. [ワイヤレスとネットワーク]をクリックします
  4. モバイルネットワークに移動
  5. アクセスポイント名に移動
  6. ここでTelkila Internetをクリックします。
  7. [アクセスポイントの編集]セクションで、「プロキシ」と「ポート」を入力します
  8. ユーザー名とパスワードも入力し、残りのフィールドは空白のままにします。

ローカルホストでFiddler2または他のプロキシを実行する最も一般的なユースケースでは動作しません...おそらくポート転送を追加しますが、これも
面倒です

1
Androidエミュレータ2.3.3では機能しませんが、エミュレータ4.1.2では機能します。
azgolfer 2013年

24
これは、アンドロイド5枚の画像(API 21)の上にもう動作しません
neomega

この答えは受け入れられるべきです!MacのBurpsuiteで動作します!
錬金術師、

これもボレーで動作しました!誰かがそれを理解している場合に備えて追加されました。
コンピューティング

58

-Androidエミュレーターのhttp-proxy

実行時の構成> Androidアプリケーション>アプリ>ターゲット>追加エミュレーターコマンドラインオプション:-http-proxy http://xx.xxx.xx.xx:8080


それは何日食バージョンですか?私はこのインターフェースを見ません:(
Salman von Abbas

1
下にスクロールしましたか?
ダーパン2014

また、エミュレーターを構成します
Badre

3
ユーザ名とパスワードを使用してプロキシのこの形式:-http-proxy http://username:password@host:port
ashakirov

emulator is not recognized as a command私の場合のエラー.PATH変数に何かを追加する必要がありますか?Android Studio 1.0.1を使用していて、オフィスシステムにプロキシがあります。
Anil Bhaskar、2015

40

今Androidエミュレータに設定があります ここに画像の説明を入力してください



私のために働いた。私のアンビエント:MAC OSアンビエント+ Androidエミュレーターおよびフィドラープロキシを備えたWindows 7に対応
Arthur Menezes

7
この設定は私にはうまくいきませんでした。エミュレータを動作させるには、常に-http-proxyコマンドでエミュレータを起動する必要があります。
gsingh2011年

2
このメニューには、2017年半ばから気が狂うようなバグが繰り返し発生します。同じAVDでは機能しないこともあります。AVDの再作成のみが確実に役立ちます。セッションの途中でプロキシが落ちることがあります。企業環境では、たわごとのためにアカウントからロックアウトされています。
ハルキシネート2018

しかし、私は今のところ解決策を見つけたようです:プロキシを使用するように上記のように偽のwifiホットスポットを構成すると、プロキシが認証を必要としますが、そのホットスポット構成にはまったくありません。URLとポートだけで、失われた接続をすぐに復元できました。
ハルキシネート2018

20

サーバー名のhttpを削除してから試しましたが、うまくいきました。

emulator -avd myavd -http-proxy 168.192.1.2:3300


これはブラウザでのみ機能しますが、アプリのリクエストはプロキシを経由しません:(
Felipe Sabino

14

これはブラウザには役立ちませんが、HTTPクライアントで使用するコードでプロキシを定義することもできます。

// proxy
private static final String PROXY = "123.123.123.123";
// proxy host
private static final HttpHost PROXY_HOST = new HttpHost(PROXY, 8080);
HttpParams httpParameters = new BasicHttpParams();
DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, PROXY_HOST);

1
String PROXYには「127.0.0.1」を入れないでください。
ミカエル

kuester2000は、ここで私の質問を見ているstackoverflow.com/questions/31723494/...
ツァラE Ahmer

9

Android Studioの場合:

アプリメニューの[設定の編集]をクリックします

ここに画像の説明を入力してください

  1. アプリまたはAndroidアプリに移動します(デフォルト設定として)
  2. デバッガをタップ
  3. LLDB起動コマンドをタップします
  4. +をタップ
  5. コマンドを追加 -http-proxy http://168.192.1.2:3300

ここに画像の説明を入力してください

それだけです。

PC IPを使用したい場合は、次のコマンドを使用してください。

  • -http-proxy "$(ipconfig getifaddr en0)":8888 MacOS
  • -http-proxy "$(hostname -i)":8888 Linux上

4

プロキシサーバーを設定するには、設定を行う必要がありAPNSます。これをする:

  1. 設定に移動

  2. ワイヤレスとネットワークに移動

  3. モバイルネットワークに移動

  4. アクセスポイント名に移動します。メニューを使用して新しいAPNを追加する

    プロキシを設定=ローカルホスト

    Port =プロキシサーバーの作成に使用しているポートを設定します。私の場合は8989です。

    Nameおよびapnを設定するためのリンクは次のとおりです。

    あなたのsimカードによると、あなたはテーブルを見ることができます


「プロキシサーバーを介した認証は失敗しました」プロキシは認証を必要とせず、tcpダンプによる要求を見たことはありません。
gcb 2013


3

ホストコンピュータにProxifierをインストールします。プロキシを使用するようにプロキシーを設定します。他に何もする必要はありません。きっと大丈夫だよ。Proxifierは、システム(Androidエミュレーターを含む)からの呼び出しをトラップし、構成されたプロキシを介してルーティングします。


3
Proxifierは購入する必要がある商用ソフトウェアであることに注意してください。
ロバート

2

それが機能したかどうか私はWindows 64ビットでEclipseを使用しています:次の手順を実行してください...それは私のために機能しました:ウィンドウ->設定-> Android->起動->デフォルトのエミュレータオプション-http-proxy = "http:/ /10.1.8.30:8080 "

あなたの日食ウィンドウで


2

すべてを設定した後でも、機能しない場合があります。私はすべての方法を試しました

  1. エミュレータAPNでプロキシを設定する
  2. Eclipse設定で設定-> Android->起動

何もうまくいきませんでした。次に、すぐに機能する次のことを行いました。

Goto eclipse Run->実行構成。Androidアプリケーションの下に、アプリケーションが表示されます。次に、右側の[ターゲット]タブをクリックします。「追加のエミュレータコマンドラインオプション」の下に、以下を追加します。

-dns-server < ローカルマシンから最大3つのDNSサーバー > -http-proxy http:// < プロキシ >:< プロキシポート >

ここでの問題は、DNSサーバーの設定がローカルシステムからのものであることです。後藤は、cmdを迅速かつ実行IPCONFIGは、 DNSサーバーをチェックします。プロキシサーバーとポートと同じです。お使いのブラウザで機能するものはすべてここに配置する必要があります。


2

最も簡単な方法は、エミュレーター(私の場合はT-mobile)からデフォルトのAPNを削除し、プロキシー設定で新しいAPNを作成することです。

注:コマンドラインオプションをすべて試し、エミュレータのデフォルトAPNのプロキシを設定しようとしましたが、何も機能しませんでした。


私はこれに1か月以上も苦労していましたが、ようやく動作しました... @usergoのおかげで、彼の回答からこの手がかりが得られました
Mahesh

2

エミュレーターの実行に使用している環境に応じて、エミュレーターがどのように開始されたかをログで確認してください。鉱山は次のように開始されます:

C:\ Users \ johan \ AppData \ Local \ Android \ Sdk \ tools \ emulator.exe -netdelay none -n​​etspeed full -avd Nexus_5X_API_23

次に、私の場合は-http-proxyオプションを追加します。

C:\ Users \ johan \ AppData \ Local \ Android \ Sdk \ tools \ emulator.exe -netdelay none -n​​etspeed full -avd Nexus_5X_API_23 -http-proxy 192.168.0.22:8888


1

プロキシ環境下にあり、インターネットがエミュレータで実行されていない場合は、エミュレータの設定を変更しないでください。Eclipseプロジェクトに移動し、を右クリックして[別のユーザーとして実行]をクリックし、[構成の実行]をクリックします。ポップアップウィンドウで[ターゲット]を選択し、少し下にスクロールすると、[追加のエミュレータコマンドラインオプション]が表示されます。入力したとおりに、[追加のエミュレータコマンドラインオプション]にプロキシ設定を入力します。

-http-proxy http:// ee11s040:Om1l2ng3d4n2!08@hproxy.iitm.ac.in:3128

ここに画像の説明を入力してください

次に、新しいエミュレータを起動します。


1

ntlm認証で企業プロキシを設定する最良の方法は、cntlmを使用することです。

http://cntlm.sourceforge.net/

C:\ Program Files \ Cntlm \ cntlm.iniにインストールして構成します。デフォルトでは、cntlmは127.0.0.1:3128をリッスンします。

Androidデバイスで、プロキシホスト10.0.2.2とポート3128 10.0.2.2を使用して新しいAPNを設定します。これは、ホストループバックインターフェイス(開発マシンでは127.0.0.1)の特別なエイリアスです。

http://developer.android.com/tools/devices/emulator.html#emulatornetworkingも参照してください

よろしく


1

あなたのアドレスは192.168.1.2ではなく168.192.1.2でよろしいですか?

最初の2つの数値が入れ替わっていることに注意してください。


1

コンソールで次のコマンドを開始します。

emulator -avd emulator_name -http-proxy you_proxy_ip_address:8080

0

AVD Androidエミュレーター:

  1. シミュレーターを開きます( ".. \ android-sdk \ AVD Manager.exe")
  2. ツールに移動
  3. オプションに移動
  4. プロキシ設定:

最初のフィールド(HTTPプロキシサーバー)でIPアドレスのみを設定します。2番目のフィールドでプロキシ(XXX.XXX.XXX.XXX)を設定します。プロキシのポートを設定します(例:8080)。

次に、ウィンドウの[閉じる]をクリックしてエミュレータを起動します

----追加...次に、アレックスステップが私のケースで機能します。

Click on Menu
Click on Settings
Click on Wireless & Networks
Go to Mobile Networks
Go to Access Point Names
Here you will Telkila Internet (or other name), click on it.
In the Edit access point section, input the "proxy" and "port"

これは、SDKファイルをダウンロードするために、SDKマネージャーのプロキシ設定のみを設定します。
ブラッド

0

アプリでプロキシを設定できます。これは、Settingsクラスを使用して行うことができます。たとえば、「onCreate」メソッドに次の行を追加できます。

 Settings.System.putString(getContentResolver(), Settings.System.HTTP_PROXY, "myproxy:8080"); 

プロキシ設定を変更するには、AndroidManifest.xmlファイルにandroid.permission.WRITE_SETTINGS権限が必要です。


0

一部のleanback(TV)エミュレーターでは、cmdを使用できます。

adb shell settings put global http_proxy 10.0.2.2:8888

  • 8888 -ローカルマシン(ホスト)上のプロキシのポートであるため、ローカルマシンではhttpプロキシは127.0.0.1:8888になります。

プロキシを削除するには(cmd行で順次実行):

adb shell settings delete global http_proxy

adb shell settings put global global_http_proxy_host ""

adb shell settings put global global_http_proxy_port ""

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.