Android Studio 3.1.4 Gradle 同步失败

Android Studio 3.1.4 Gradle Sync Failed

每当我在 Android Studio 中创建一个新项目时,它都会在 Gradle 同步时失败,并且总是出现相同的错误:

Connection timed out: connect

org.gradle.internal.resource.transport.http.HttpRequestException: Could not GET 'https://jcenter.bintray.com/com/android/tools/build/gradle/3.1.4/gradle-3.1.4.pom'.

IDE 的屏幕截图:

恰好在 GET 这个 link: https://jcenter.binary.com/com/android/tools/build/gradle/3.1.4/gradle-3.1.4.pom 时失败,但它可以接收其他 link,如 dl.google.com 和 SDK 管理器。 我什至在 AS 3.1.3 上也遇到了这个错误,而且我一直无法通过 Android Studio 创建 Android Application。它可以通过 Eclipse ADT 轻松完成,但我想使用 Android Studio,因为它是 Android 的官方 IDE,并且 Google 支持 Android Studio

有什么方法可以解决 Gradle 这个无聊的失败? (我已经在 GoogleStack overflow 搜索了一千次)

当然,link 被我们的(伊朗 IP)屏蔽 所以,我们的想法是启用 VPN重新打开 Android Studio,如果无法再次下载,则使 Caches/Restart 无效:

(Android Studio -> File -> Invalidate Caches/Restart)

那你应该可以走了。

Gradle.build 中添加库也可能发生这种情况,可以通过此方法绕过。

终于成功了!

更新(最佳答案)

JCenter 检测到大多数 VPN,我为您提供更好的解决方案(伊朗开发者):

有一个服务可以帮助我们通过限制(像JCenterAndroid Developer,等等很多服务):https://shecan.ir可以使用该快速服务而不会断开连接或出现其他麻烦(它使用 DNS 绕过限制,因此通常比 VPN 更快)。

旧答案

尊敬的伊朗开发人员,您可以通过以下简单步骤轻松解决此问题:

1 - 打开 Psiphon

2 - 在 Psiphon (VPN) 中转到设置 -> 本地代理端口 -> HTTP,HTTPS:63620 - SOCKS:63621。这将强制 Psiphon 始终将端口 63620 用于 HTTP。

3- 转到 AS 设置 -> 外观和行为 -> 系统设置 -> HTTP 代理 -> 手动代理配置 -> HTTP:主机名:127.0.0.1 - 端口:63620 -> 取消选中 Proxy Authentication.

注意:这些端口(6362063621)是自定义的,但是PsiphonAS HTTP代理设置的HTTP端口必须相同.

4 - 注意:Android Studio 仅在您第一次创建项目时在线工作。 之后,您可以离线工作并构建您的项目或再次同步它Gradle.

完成!

我在更新 Android Studio 后也遇到了这个问题。

我通过在项目级别 build.gradle 文件中降级 com.android.tools.build:gradle 的版本来解决它,与旧项目相同。

1> 打开你的另一个项目

--------在项目级别 gradle

检查 com.android.tools.build:gradle 的版本

--------检查gradle-wrapper.properties

中的distributionUrl版本

2> 在您的项目中应用这两个版本

项目级别build.gradle

buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.1' // your version

gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip // your version

同步和 运行,所有错误都消失了!

前往地址 https://github.com/clarketm/proxy-list select 一个代理和端口

转到 AS 设置 -> 外观和行为 -> 系统设置 -> HTTP 代理 -> 手动代理配置 -> HTTP:主机名:ip - 端口:port -> 检查代理身份验证 检查地址 https://developer.android.com/studio/ 是否正常 结束

我遇到了同样的问题并更新了 gradle 版本到最后一个:

classpath 'com.android.tools.build:gradle:3.1.3'

新建

classpath 'com.android.tools.build:gradle:3.1.4'

它工作正常。

在我的例子中,我需要添加 google()

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.4'
    }
}

使用热点盾

我遇到了同样的问题,因为这项服务在叙利亚被禁止