解决Android模拟器网络问题(使用了代理的情况下)

没错,又是AS的网络问题,而且又是代理的问题,真是不省心呐!!

最近在做curl移植到Android JNI的工作,老是出现 CURLE_PARTIAL_FILE 错误。
用Wireshark抓包居然还抓不出来,于是怀疑模拟器是用本地代理的方式连接网络的。

netstat -aon | grep 模拟器pid

看看是通过哪个端口访问,终于揪出这个小东西:

  TCP    127.0.0.1:5554         0.0.0.0:0              LISTENING       13676
  TCP    127.0.0.1:5555         0.0.0.0:0              LISTENING       13676
  TCP    127.0.0.1:5555         127.0.0.1:7121         ESTABLISHED     13676
  TCP    127.0.0.1:7097         127.0.0.1:5037         ESTABLISHED     13676
  TCP    127.0.0.1:11126        127.0.0.1:1991         CLOSE_WAIT      13676
  TCP    127.0.0.1:11788        127.0.0.1:1991         ESTABLISHED     13676
  TCP    127.0.0.1:11966        127.0.0.1:1991         ESTABLISHED     13676
  TCP    [::1]:5555             [::]:0                 LISTENING       13676

那个1991端口的不就是我的SSR本地端口吗?!?!

恍然大悟,原来AS里面的代理设置会影响到模拟器,出于不明原因,对于Http代理还支持的不好,导致模拟器环境内的网络总是出现莫名其妙的问题。

那把AS里面的Http proxy改成No Proxy,重启模拟器就搞定了。(模拟器运行期间修改Http Proxy不生效,这样反而可以利用来分离AS用的代理和模拟器用的网络,虽然每次都得改一下比较麻烦)

你可能感兴趣的:(解决Android模拟器网络问题(使用了代理的情况下))