【问题标题】:How to set up Android emulator proxy settings如何设置 Android 模拟器代理设置
【发布时间】:2010-12-06 22:30:06
【问题描述】:

我想在 Android 模拟器中使用浏览器,并且我想在我的机器上使用代理设置。我该如何设置?

阅读了非常好的 Android 手册,他们告诉我应该使用以下命令启动 Android:

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

但我仍然无法使用模拟器浏览器。请注意,我正在使用代理服务器的 IP 地址。

我做错了什么?

【问题讨论】:

    标签: android browser proxy android-emulator


    【解决方案1】:

    Android 模拟器中有一个设置来设置代理。

    【讨论】:

    • 为我工作。我的环境:MAC OS 环境 + android 模拟器和 windows 7 与提琴手代理并行
    • 这个设置对我没有用。我总是必须用 -http-proxy 命令启动模拟器才能让它工作。
    • 这个菜单有一个反复出现的错误,从 2017 年中期开始让我抓狂。有时它有效,有时不在同一个 AVD 上。只有重新创建 AVD 才能可靠地提供帮助。有时代理会在会话中间掉下来!在公司环境中,这意味着我会因为那件事而被锁定在我的帐户之外。
    • 不过,看起来我现在已经找到了解决方案:即使我的代理需要身份验证,但配置上面的那个假 wifi 热点以使用代理也会有所帮助,而该热点配置没有全部。只是 URL 和端口有助于立即恢复丢失的连接。
    【解决方案2】:

    对于某些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 ""

    【讨论】:

      【解决方案3】:

      在控制台启动下一条命令:

      emulator -avd emulator_name -http-proxy you_proxy_ip_address:8080
      

      【讨论】:

        【解决方案4】:

        在 Android Studio 上:

        点击应用菜单下的编辑配置

        1. 转到 App 或 Android App(作为默认设置)
        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 上

        【讨论】:

          【解决方案5】:

          在您的主机中安装ProxifierSetup proxifier to use your proxy。你不需要做任何其他事情。你会好起来的。 Proxifier 捕获来自系统(包括 android 模拟器)的调用,并通过配置的代理进行路由。

          【讨论】:

          • 请注意,Proxifier 是必须购买的商业软件。
          【解决方案6】:

          根据您用于运行模拟器的环境,检查日志以了解模拟器是如何启动的。我的开始是:

          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

          【讨论】:

            【解决方案7】:

            最简单的方法是从模拟器中删除默认 APN(在我的例子中是 T-mobile)和 使用您的代理设置创建新的 APN。

            注意:我已经尝试了所有命令行选项并尝试设置代理 模拟器默认 APN,但没有任何效果。

            【讨论】:

            • 我为此苦苦挣扎了一个多月,但终于让它工作了......感谢@usergo,他的回答给了我这个线索
            【解决方案8】:

            您确定您的地址是 168.192.1.2 而不是 192.168.1.2?

            注意交换的前两个数字。

            【讨论】:

              【解决方案9】:

              使用 ntlm 身份验证设置公司代理的最佳方法是使用 cntlm:

              http://cntlm.sourceforge.net/

              在 C:\Program Files\Cntlm\cntlm.ini 中安装和配置 默认cntlm,监听127.0.0.1:3128

              在 android 设备中设置一个新的 APN,代理主机 10.0.2.2 和端口 3128 10.0.2.2 是主机环回接口的特殊别名(开发机器上的 127.0.0.1)

              另请参阅 http://developer.android.com/tools/devices/emulator.html#emulatornetworking

              问候

              【讨论】:

                【解决方案10】:

                我在删除服务器名称中的 http 后尝试过,它对我有用。

                emulator -avd myavd -http-proxy 168.192.1.2:3300

                【讨论】:

                • 这仅适用于浏览器,但没有应用程序请求通过代理 :(
                【解决方案11】:

                如果您在代理环境下并且模拟器中没有运行互联网,请不要更改模拟器中的任何设置。转到您的 Eclipse 项目,右键单击,单击“运行方式”,然后单击“运行配置”。 在弹出窗口中选择“目标”并向下滚动一点, 你会发现“附加模拟器命令行选项” 在我输入时,在“其他模拟器命令行选项”中输入您的代理设置

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

                然后启动一个新的模拟器。

                【讨论】:

                  【解决方案12】:

                  您可以在应用中设置代理。这可以使用设置类来完成。 例如,您可以在“onCreate”方法中添加以下行。

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

                  要更改代理设置,您必须在 AndroidManifest.xml 文件中拥有 android.permission.WRITE_SETTINGS 权限。

                  【讨论】:

                    【解决方案13】:

                    有时,即使设置了所有内容,它也可能无法正常工作。我已经尝试了所有方法,例如

                    1. 在模拟器 APN 中设置代理
                    2. 通过 Eclipse 偏好设置 --> Android --> 启动

                    没有任何效果。然后我做了以下立即奏效的操作。

                    Goto eclipse Run --> 运行配置。在 Android 应用程序下,您可以看到您的应用程序。现在,在右侧单击目标选项卡。在“其他模拟器命令行选项”下添加以下内容。

                    -dns-server DNS 服务器从您的本地机器到最多三个> -http-proxy http://您的代理>:你的代理端口>

                    这里的问题是 DNS 服务器设置应该来自您的本地系统。转到 cmd 提示符并运行 ipconfig 以检查您的 DNS 服务器。与代理服务器和端口相同。任何适合您的浏览器的东西都应该放在这里。

                    【讨论】:

                      【解决方案14】:

                      拥有 AVD 安卓模拟器:

                      1. 打开模拟器(“..\android-sdk\AVD Manager.exe”)
                      2. 转到工具
                      3. 转到选项
                      4. 关于代理设置:

                      在第一个字段(HTTP 代理服务器)上只设置您的代理的 IP 地址(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 文件。
                      【解决方案15】:

                      On Run Configuration> Android Application > App > Target > Additional Emulator Command Line Options: -http-proxy http://xx.xxx.xx.xx:8080

                      【讨论】:

                      • 那是什么 Eclipse 版本?我没有看到这个界面:(
                      • 同时配置你的模拟器
                      • 对于带有用户名和密码的代理,请使用以下格式:-http-proxy http://username:password@host:port
                      • error emulator is not recognized as a command 在我的情况下..我需要在 PATH 变量中添加任何内容吗??我正在使用 Android Studio 1.0.1 并在我的办公系统中有代理。
                      【解决方案16】:

                      在尝试设置环境变量http_proxy之前,我没有运气

                      http://developer.android.com/tools/help/emulator.html

                      “如果没有提供 -http-proxy 命令,模拟器会查找 http_proxy 环境变量并自动使用与上述格式匹配的任何值。”

                      【讨论】:

                        【解决方案17】:

                        要设置代理服务器,我们需要设置APNS 设置。为此:

                        1. 进入设置

                        2. 转到无线和网络

                        3. 转到移动网络

                        4. 转到接入点名称。使用菜单添加新的 apns

                          设置代理=本地主机

                          设置端口 = 用于制作代理服务器的端口,在我的例子中是 8989

                          For setting Name and apn here is the link:

                          根据你的sim卡你可以看到表格

                        【讨论】:

                        • “通过代理服务器的身份验证不成功”代理不需要身份验证,并且根据 tcp 转储从未看到任何请求。
                        【解决方案18】:

                        最简单也是最好的方法是执行以下操作: Android Emulator 2.2 已完成此操作

                        1. 点击菜单
                        2. 点击设置
                        3. 点击无线和网络
                        4. 转到移动网络
                        5. 转到接入点名称
                        6. 这里是 Telkila Internet,点击它。
                        7. 在编辑接入点部分,输入“代理”和“端口”
                        8. 同时提供用户名和密码,其余字段留空。

                        【讨论】:

                        • 不适用于在本地主机上运行 Fiddler2 或其他代理的最常见用例......可能会添加端口转发,但这也很痛苦
                        • 它不适用于 Android 模拟器 2.3.3,但适用于我的模拟器 4.1.2。
                        • 这不再适用于 android 5 图像 (api 21)
                        • 这个答案应该是被接受的!在 mac 上与 Burpsuite 一起使用!
                        • 这也适用于 Volley!添加以防万一有人对此感到厌烦。
                        【解决方案19】:

                        没有任何效果 我在 Windows 64 位上使用 Eclipse: 执行以下步骤......它对我有用: 窗口 -> 首选项 -> Android -> 启动 -> 默认模拟器选项 -http-proxy="http://10.1.8.30:8080"

                        在你的 Eclipse 窗口中

                        【讨论】:

                          【解决方案20】:

                          这对浏览器没有帮助,但您也可以在代码中定义代理以与 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);
                          

                          【讨论】:

                          猜你喜欢
                          • 2016-05-31
                          • 1970-01-01
                          • 1970-01-01
                          • 2012-09-08
                          • 2020-11-20
                          • 2010-10-06
                          • 2017-07-13
                          • 2023-03-13
                          • 2016-03-09
                          相关资源
                          最近更新 更多