So richten Sie die Proxy-Einstellungen für den Android-Emulator ein


110

Ich möchte den Browser im Android-Emulator verwenden und die Proxy-Einstellungen auf meinem Computer verwenden. Wie kann ich das einrichten?

Beim Lesen der sehr guten Android-Handbücher wird mir gesagt, dass ich Android mit dem folgenden Befehl starten soll:

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

Ich kann den Emulator-Browser aber immer noch nicht verwenden. Bitte beachten Sie, dass ich die IP-Adresse für meinen Proxyserver verwende.

Was mache ich falsch?

Antworten:


147

Der einfachste und beste Weg ist, Folgendes zu tun: Dies wurde für Android Emulator 2.2 durchgeführt

  1. Klicken Sie auf Menü
  2. Klicken Sie auf Einstellungen
  3. Klicken Sie auf Wireless & Networks
  4. Gehen Sie zu Mobile Networks
  5. Gehen Sie zu Access Point-Namen
  6. Hier werden Sie Telkila Internet, klicken Sie darauf.
  7. Geben Sie im Abschnitt Zugriffspunkt bearbeiten den "Proxy" und den "Port" ein.
  8. Geben Sie auch den Benutzernamen und das Passwort an. Die restlichen Felder lassen sie leer.

Funktioniert nicht mit dem häufigsten Anwendungsfall, in dem Fiddler2 oder ein anderer Proxy auf localhost ausgeführt wird. Wahrscheinlich wird eine Portweiterleitung hinzugefügt, aber das ist auch ein
Problem

1
Es funktioniert nicht mit Android Emulator 2.3.3, aber mit Emulator 4.1.2 für mich.
Azgolfer

24
Dies funktioniert nicht mehr auf Android 5 Bilder (API 21)
Neomega

Diese Antwort sollte akzeptiert werden! Funktioniert mit Burpsuite auf dem Mac!
Alchemist

Das hat auch mit Volley funktioniert! fügte hinzu, nur für den Fall, dass jemand das begriff.
Computingfreak

58

-http-Proxy auf Android Emulator

Bei Konfiguration ausführen> Android-Anwendung> App> Ziel> Zusätzliche Emulator-Befehlszeilenoptionen: -http-proxy http: //xx.xxx.xx.xx: 8080


Welche Eclipse-Version ist das? Ich sehe diese Schnittstelle nicht :(
Salman von Abbas

1
Hast du nach unten gescrollt?
Darpan

Konfigurieren Sie auch Ihren Emulator
Badre

3
Für Proxy mit Benutzername und Passwort verwenden Sie dieses Format:-http-proxy http://username:password@host:port
ashakirov

Fehler emulator is not recognized as a commandin meinem Fall .. muss ich etwas in PATH Variable hinzufügen? Ich verwende Android Studio 1.0.1 und habe einen Proxy in meinem Office-System.
Anil Bhaskar

40

Jetzt gibt es eine Einstellung im Android-Emulator Geben Sie hier die Bildbeschreibung ein



Hat für mich gearbeitet. Meine Umgebung: MAC OS Ambient + Android Emulator und Parallelen Windows 7 mit Fiddler Proxy
Arthur Menezes

7
Diese Einstellung hat bei mir nie funktioniert. Ich muss den Emulator immer mit dem Befehl -http-proxy starten, damit er funktioniert.
Gsingh2011

2
Dieses Menü hat einen wiederkehrenden Fehler, der mich ab Mitte 2017 verrückt macht. Manchmal funktioniert es, manchmal nicht auf derselben AVD. Nur die Neuerstellung der AVD kann zuverlässig helfen. Manchmal fällt der Proxy mitten in einer Sitzung ab! In der Unternehmensumgebung bedeutet dies, dass ich wegen dieser Scheiße von meinem Konto ausgeschlossen werde.
halxinate

Es sieht jedoch so aus, als hätte ich die Lösung für den Moment gefunden: Die Konfiguration dieses gefälschten WLAN-Hotspots wie oben für die Verwendung des Proxys hilft, obwohl mein Proxy die Authentifizierung erfordert, die diese Hotspot-Konfiguration überhaupt nicht hat. Nur URL und Port haben dazu beigetragen, die verlorene Konnektivität sofort wiederherzustellen.
halxinate

20

Ich habe es versucht, nachdem ich http im Servernamen entfernt hatte, und es hat bei mir funktioniert.

emulator -avd myavd -http-proxy 168.192.1.2:3300


Dies funktioniert nur für Browser, aber keine App-Anfrage geht über den Proxy :(
Felipe Sabino

14

Dies hilft dem Browser nicht, aber Sie können in Ihrem Code auch einen Proxy definieren, der mit einem HTTP-Client verwendet werden soll:

// 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
Sie sollten nicht "127.0.0.1" für String PROXY eingeben.
Michaël

kuester2000 werfen Sie einen Blick auf meine Frage hier stackoverflow.com/questions/31723494/…
Zar E Ahmer

9

Auf Android Studio:

Klicken Sie im App-Menü auf Konfiguration bearbeiten

Geben Sie hier die Bildbeschreibung ein

  1. Gehen Sie zu App oder Android App (als Standardeinstellungen)
  2. Tippen Sie auf Debugger
  3. Tippen Sie auf den LLDB-Startbefehl
  4. Tippen Sie auf +
  5. Fügen Sie Ihren Befehl hinzu -http-proxy http://168.192.1.2:3300

Geben Sie hier die Bildbeschreibung ein

das ist es

Weitere coole Sachen, wenn Sie Ihre PC-IP verwenden möchten, verwenden Sie diesen Befehl:

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

4

Zum Einstellen des Proxyservers müssen wir die APNSEinstellung festlegen . Um dies zu tun:

  1. Gehen Sie zu Einstellung

  2. Gehen Sie zu WLAN und Netzwerken

  3. Gehen Sie zu Mobilfunknetzen

  4. Gehen Sie zu den Zugriffspunktnamen. Verwenden Sie das Menü, um neue Apns hinzuzufügen

    Setzen Sie Proxy = localhost

    Setzen Sie Port = Port, den Sie zum Erstellen eines Proxyservers verwenden, in meinem Fall 8989

    Zum Einstellen von Name und apn ist hier der Link:

    Entsprechend Ihrer simKarte können Sie die Tabelle sehen


"Authentifizierung über den Proxyserver war nicht erfolgreich" Der Proxy erfordert keine Authentifizierung und hat laut TCP-Dump keine Anforderung gesehen.
GCB



2

Nichts davon hat funktioniert. Ich verwende Eclipse unter Windows 64-Bit: Führen Sie die folgenden Schritte aus ... es hat bei mir funktioniert: Fenster -> Einstellungen -> Android -> Start -> Standard-Emulatoroptionen -http-proxy = "http: / /10.1.8.30:8080 "

in Ihrem Eclipse-Fenster


2

Manchmal funktioniert es auch nach dem Einstellen nicht mehr. Ich habe alle Methoden wie ausprobiert

  1. Festlegen des Proxys im Emulator-APN
  2. Festlegen über die Eclipse-Einstellungen -> Android -> Starten

Nichts hat geklappt. Dann habe ich folgendes gemacht, was sofort funktioniert hat.

Gehe zu Eclipse Run -> Run Configurations. Unter Android-Anwendungen sehen Sie Ihre Anwendung. Klicken Sie nun auf der rechten Seite auf die Registerkarte Ziel. Fügen Sie unter "Zusätzliche Emulator-Befehlszeilenoptionen" Folgendes hinzu.

-dns-server < DNS-Server von Ihrem lokalen Computer bis zu drei > -http-proxy http: // < Ihr Proxy >: < Ihr Proxy-Port >

Der Haken dabei ist, dass die DNS-Servereinstellung von Ihrem lokalen System stammen sollte. Gehe cmd Aufforderung und führen Sie ipconfig Ihre DNS - Server zu überprüfen. Gleiches gilt für den Proxyserver und den Port. Was auch immer für Ihren Browser funktioniert, sollte hier eingegeben werden.


2

Am einfachsten ist es, den Standard-APN aus dem Emulator (in meinem Fall T-Mobile) zu löschen und einen neuen APN mit Ihren Proxy-Einstellungen zu erstellen.

Hinweis: Ich habe alle Befehlszeilenoptionen ausprobiert und auch versucht, den Proxy für den Standard-APN des Emulators festzulegen, aber nichts hat funktioniert.


Ich hatte mehr als einen Monat damit zu kämpfen, aber es hat endlich funktioniert ... Dank @usergo gab mir seine Antwort diesen Hinweis
Mahesh

2

Abhängig von der Umgebung, in der Sie den Emulator ausführen, überprüfen Sie die Protokolle, um festzustellen, wie der Emulator gestartet wird. Meins wird gestartet als:

C: \ Benutzer \ johan \ AppData \ Local \ Android \ Sdk \ tools \ emulator.exe -netdelay keine -netspeed full -avd Nexus_5X_API_23

Dann fügen Sie in meinem Fall die Option -http-proxy hinzu:

C: \ Benutzer \ johan \ AppData \ Local \ Android \ Sdk \ tools \ emulator.exe -netdelay keine -netspeed full -avd Nexus_5X_API_23 -http-proxy 192.168.0.22:8888


1

Wenn Sie sich in einer Proxy-Umgebung befinden und das Internet in Ihrem Emulator nicht ausgeführt wird, ändern Sie bitte keine Einstellungen im Emulator. Gehen Sie zu Ihrem Eclipse-Projekt, klicken Sie mit der rechten Maustaste, klicken Sie auf "Ausführen als" und dann auf "Konfiguration ausführen". Wählen Sie im Popup-Fenster "Ziel" und scrollen Sie ein wenig nach unten. Sie finden "Zusätzliche Emulator-Befehlszeilenoptionen". Geben Sie Ihre Proxy-Einstellung hier unter "Zusätzliche Emulator-Befehlszeilenoptionen" ein, wie ich eingegeben habe

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

Geben Sie hier die Bildbeschreibung ein

Starten Sie dann einen neuen Emulator.


1

Der beste Weg, um einen Unternehmens-Proxy mit ntlm-Authentifizierung festzulegen, ist die Verwendung von cntlm:

http://cntlm.sourceforge.net/

Installieren und konfigurieren Sie in C: \ Programme \ Cntlm \ cntlm.ini Standardmäßig hört cntlm 127.0.0.1:3128

Stellen Sie im Android-Gerät einen neuen APN mit Proxy-Host 10.0.2.2 ein und Port 3128 10.0.2.2 ist ein spezieller Alias ​​für Ihre Host-Loopback-Schnittstelle (127.0.0.1 auf Ihrem Entwicklungscomputer).

Siehe auch http://developer.android.com/tools/devices/emulator.html#emulatornetworking

Grüße


1

Sind Sie sicher, dass Ihre Adresse 168.192.1.2 und nicht 192.168.1.2 lautet?

Beachten Sie die getauschten ersten beiden Zahlen.


1

Starten Sie in der Konsole den nächsten Befehl:

emulator -avd emulator_name -http-proxy you_proxy_ip_address:8080

0

Mit dem AVD Android Emulator:

  1. Öffnen Sie den Simulator (".. \ android-sdk \ AVD Manager.exe")
  2. Gehen Sie zu Extras
  3. Gehen Sie zu Optionen
  4. Zu den Proxy-Einstellungen:

Stellen Sie im ersten Feld (HTTP-Proxyserver) nur die IP-Adresse ein, unter der sich Ihr Proxy befindet (XXX.XXX.XXX.XXX). Im zweiten Feld legen Sie den Port Ihres Proxys fest (Beispiel: 8080).

Klicken Sie dann im Fenster auf Schließen und starten Sie den Emulator

---- Hinzugefügt ... Dann funktionieren die Alex-Schritte in meinem Fall:

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"

Dadurch werden nur die Proxy-Einstellungen für den SDK-Manager zum Herunterladen von SDK-Dateien festgelegt.
Brad

0

Sie können den Proxy in Ihrer App festlegen. Dies kann mit der Klasse "Einstellungen" erfolgen. Beispielsweise können Sie Ihrer "onCreate" -Methode die folgende Zeile hinzufügen.

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

Um die Proxy-Einstellungen zu ändern, müssen Sie die Berechtigung android.permission.WRITE_SETTINGS in Ihrer AndroidManifest.xml-Datei haben.


0

Für einige leanback(TV-) Emulatoren können Sie cmd verwenden:

adb shell settings put global http_proxy 10.0.2.2:8888

  • 8888 - ist ein Proxy-Port auf einem lokalen Computer (Host). Auf einem lokalen Computer lautet der http-Proxy also 127.0.0.1:8888

So entfernen Sie den Proxy (nacheinander in cmd-Zeile ausführen):

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 ""

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.