身为一个内陆 Android 开发者,由于各种你懂得原因,不可避免的需要用到网络代理,而各种网络代理软件常常会带来一些莫名其妙的问题,其中最坑爹的莫过于编译依赖时发生 time out,以下是总结出来的几种修复方案。
一、AndroidStudio
首先最容易想到的就是 IDE 上的网络代理设置:
如果按照上图所示设置了依然不行请看下一步。
二、gradle.properties
这个文件直接决定了该项目的网络代理等配置,所以需要将代理相关的代码删除后重新 Sync 一下,如图:
三、根目录 gradle 配置
如果以上两项都不起作用,往往很多人就懵逼了,开始怀疑人生。实际上在用户根目录下还有一个 gradle.progerties 文件,可以看成项目内的配置文件只对这个项目生效,而用户根目录下的配置文件是对全局生效的,因此也需要去删除该文件的对应代理的代码,删除的步骤和第二步一致。
文件位置这里以 mac 为例,通常在用户目录下的 .gradle/gradle.progerties:
vi ~/.gradle/gradle.properties
四、WTF
上面三项都执行完成之后,还是 time out ?这也是我写这篇文章的动机,因为我确确实实的碰到了这样的情况,之前也有碰到过然后使用万能解决办法 重启系统 搞定了,可这次无论怎样都解决不了。
最后在我多次尝试,已经接近奔溃边缘的时候终于让我试出来了,那就是第三步根目录下的 gradle.progerties,我在查看该文件时发现配置信息并没有异常就没有去动它,结果不确定是由于 mac 缓存机制还是什么的原因,使我通过 vi 看到的文件内容可能并不是真的内容。
对第三步中的文件进行编辑,尽管内容是正确的没有发生变化,也要 :wq
,然后就是见证奇迹的时刻,项目成功编译。WTF!
结语
如果以上四个步骤你都试过了仍然不行,那恭喜你中奖了,也欢迎你把遭遇留言出来让大家分析分析。