解决Android模拟器网络问题(使用了代理的情况下)
2018-10-09 本文已影响0人
Gavinxixi臻
没错,又是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用的代理和模拟器用的网络,虽然每次都得改一下比较麻烦)