9月30号最近更新最终方案
最近Android Studio更新到3.1.4后只前正常编译的项目突然间出现编译失败
编译时报错:
Error:Connection refused: connect
最开始以为是升级后强制要梯子才能通过编译什么的,然后打开了梯子,果然编译通过了,正常跑起来了
这一次问题就解决了
但是后面每次打开项目编译都要开梯子,啊......好烦.
但是细想,没道理,一样的配置文件,在另一台电脑是能正常编译的(不需要梯子),肯定是配置出问题了
百度了一番...大概都是几种解决方案
1. 修改gradle.properties
文件,注释掉代理设置或修改代理端口
systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyHost=1080
systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyHost=1080
2. 修改Gradle Plugin版本
classpath 'com.android.tools.build:gradle:2.3.0'
3. 拿梯子设置http代理编译
4. 甚至还有..尝试不要使用路由器,网线直接插电脑
以上都试过了..都没用
最后还是上stack over follow上找到了临时解决方案
设置本地Gradle地址,将对应要使用Gradle版本下载好放到c:/用户../.gradle/wrapper/...下面的对应目录,打开离线工作`offline work`,再次编译就好了
可以打开gradle/gradle-wrapper.properties文件的distributionUrl查看gradle版本,然后到http://services.gradle.org/distributions/下载就可以了
另:有些项目会使用一些另外的gradle插件,第一次运行时由于你没有这个插件,还是需要开启梯子去编译自动下载,然后再打开offline work就好了
9.13
今天查看日志发现有些依赖库使用了latest.release,导致了这个问题,修改成指定某个版本,上面的设置也可以不离线了
9.30
上面的一些解决方案可能刚好能解决暂时性的问题,因为有一些依赖包是之前就已经下载过的,所以这个时候使用离线是可以避免这个报错的,但是如果你加入新的依赖(本地没有的依赖)这个时候离线的方案就GG了
所以还是回到本质问题上来
Connect to 127.0.0.1:1080 [/127.0.0.1] failed: Connection refused: connect
我这边报的完整错误是连接 127.0.0.1:1080代理失败,这个代理是在用梯子的时候设置的,本身没毛病,但是梯子关了后的就出毛病了,导致了前面的那么多弯路.
其实上面的方案1是没毛病的,但是为什么有些人注释掉了还是不行呢?
因为默认的选中的是'use default gradle wrapper',选中这个的话会去使用C:/User/%your_user_name%/.gradle/wrapper/dists下对应版本的gradle,这个时候你得再看看C:/User/%your_user_name%/.gradle/目录下是不是也有一个gradle.properties
文件,有的话打开看看是不是也像方案一说的设置了代理,没错!找到根源了!注掉他再试试(试试就试试)
问题是不是解决了?
如果还有其他疑问欢迎提出来一起探讨,为后人提供实际可用发方案