Android Studio 由代理引起的 (Connection refused)、(Read time out)

2023-11-12

首先明确一点:此类问题皆是因为大陆的墙厚又高

在 AS 的 Gradle 构建依赖时由于网速、大陆墙等原因,会遇到各种各样的问题,十分的苦恼而又无可奈何,如果不能定为具体原因,就只能看项目一路飘红了。

1. 定位问题

由于项目需要对 Android 9.0 进行适配,并借此机会大范围的升级项目中用到的三方工具,代码更改完毕,点击 “sync project with gradle files”,结果就是看到了标题的错误,。我们大部分遇到的 Connection refused)、(Read time out) 等类似的问题的原因是 无法完整下载我们更改后的 Gradle 版本,也就是位于项目中的 gradle/wrapper/gradle-wrapper.properties 中的distributionUrl=https\://services.gradle.org/distributions/gradle-version.zip 中的 version

2. 解决问题方案

2.1 场景一(大部分情况)

大部分在这种情况下,我们需要手动下载需要的 Gradle 的 Zip 包 (Gradle x下载地址),并把它放到 .gradle/wrapper/dists 的相应包下,然回重新 sync 项目,基本上解决此类问题。网上的大部分博客也都是解决了该原因下的问题,而我遇到的这个问题,在此操作下仍然无效。

2.2 场景二 – 自己项目的问题

自己在 Google 了一个上午,无果。在一次的错误日志中我发现了这么一项错误:
org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:1080

很明显这是我自己配置的 vpn 的 IP 地址,有了方向,自己曾经配置过代理,但是在自己重新配置代理并运行vpn 时问题依旧没有得到解决,同时在自己取消全部代理后问题依旧存在。但是在去任何代理的情况下,自己在某次的构建中仍能看到:
org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:1080,意识到会不会是默认代理配置,打开 .gradle/wrapper/dists 文件夹的 gradle.properties 赫然出现了以下内容:

#Tue Oct 09 10:24:34 CST 2018
systemProp.https.proxyPort=1080
systemProp.http.proxyHost=127.0.0.1
systemProp.https.proxyHost=127.0.0.1
systemProp.http.proxyPort=1080

问题一下子就明了了,在项目中没有配置代理时,默认的 gradle 代理会生效,这就是导致这一问题的根源,至于为什么会生成默认配置,我猜想应该是之前在 AS 中配置代理后, AS 写入到文件中,我需要做的就是把代理的代码注释掉,如下:

#Tue Oct 09 10:24:34 CST 2018
#systemProp.https.proxyPort=1080
#systemProp.http.proxyHost=127.0.0.1
#systemProp.https.proxyHost=127.0.0.1
#systemProp.http.proxyPort=1080

问题解决了,就是这么简单。

3. 验证

为验证问题的所在,自己重新更改了 Gradle 版本,并恢复上述文件中的代理,重新构建项目,如标题的错误再次出现。按照解决方案注释代理,项目构建成功,不过由于网速的缘故,你可能需要构建多次,但是很明显你可以看到 AS 在为项目下载依赖。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Studio 由代理引起的 (Connection refused)、(Read time out) 的相关文章

随机推荐