Android Studio Gradle 构建失败。错误:原因:对等方未通过身份验证

Posted

技术标签:

【中文标题】Android Studio Gradle 构建失败。错误:原因:对等方未通过身份验证【英文标题】:Android Studio Gradle build failed. Error:Cause: peer not authenticated 【发布时间】:2014-11-04 12:05:50 【问题描述】:

我已经创建了一个项目,并且 gradle 同步成功。

当我尝试创建另一个项目时,它会失败并给出错误消息

Gradle '<ProjectName>' project refresh failed
     Error:Cause: peer not authenticated.

我已经设置了 SDK,gradle 给了 gradle VM 选项

-Dhttp.proxyHost=<proxy.address> -Dhttp.proxyPort=<port> -Dhttp.proxyUser=<username> -Dhttp.proxyPassword=<password>

在 HTTP 代理选项卡中,我也给出了正确的选项。

谁能帮帮我?

【问题讨论】:

我已经改成distributionUrl=services.gradle.org/distributions/gradle-2.1-all.zip。还是不行。 我已经确定了这个问题。您需要检查安装中适用于 android Studio 的“com.android.tools.build:gradle:”版本。此问题通常发生在 Android Studio 更新后运行良好的项目中。如果存在问题,您可以创建一个示例项目并检查安装的 gradle 版本。 希望你能找到你的解决方案here。 【参考方案1】:

这是对我有用的解决方案。在这里发帖以防对某人有帮助。

project build.gradle 文件中的 Gradle 版本不正确。

我有

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

但这必须是

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

注意: 这应该更新到最新版本的 gradle 工具,可以找到 here Android Studio 也推荐最新的插件版本。

【讨论】:

更改类路径最新版本对我有帮助。谢谢 @ 反对的选民。请注意,此答案在撰写本文时是正确的。我已经更新了答案,提到这应该是最新的 gradle 版本。【参考方案2】:

请勿将您的包源更改为 http 而不是 https。停止使用这些变通方法并修复根本原因。

你想在你的应用程序中有一个驱动漏洞吗?因为这就是您在应用中获得驾车攻击的方式!

此问题的根源证书颁发机构密钥库。不知何故,dpkg 似乎在实际安装 Java 之前尝试构建 Java 密钥库 (/etc/ssl/certs/java/cacerts),这是构建存储库的工具所需要的。结果是一个空商店:

要解决此问题,请使用所有受信任的 CA 证书正确构建密钥库。

使用 sudo 运行:

sudo rm /etc/ssl/certs/java/cacerts
sudo /var/lib/dpkg/info/ca-certificates-java.postinst configure

您应该会看到一长串添加的证书 (*.pem),最后是“完成”。

使用 gradle 重新同步项目,然后全部下载。如果您设置了 http 覆盖,请不要忘记关闭它!

来源:https://justus.berlin/2015/01/connection-problems-with-ssltls-peers-in-java-on-ubuntu-server-14-12-with-fix/

【讨论】:

您应该提到此修复针对特定的 Ubuntu 问题。这不是通用解决方案。 我在 Windows 10 中遇到了同样的问题。我在哪里/如何解决这个问题? 这对我没有帮助。我正在使用 Windows 10。【参考方案3】:

这为我解决了问题:

打开/gradle/wrapper/gradle-wrapper.properties

将distributionUrl中的“https”改为“http”:

distributionUrl=http\://services.gradle.org/distributions/gradle-2.1-all.zip

然后你需要将项目与 gradle 文件同步

【讨论】:

我已经改成distributionUrl=services.gradle.org/distributions/gradle-2.1-all.zip。还是不行。 我遇到了同样的问题。我找不到 gradle.properties 文件,我只在您提到的同一发行版中的“sample”文件夹下找到了一个... 我试图重现这个解决方案来解决试图将 Eclipse 项目转换为 Android Studio 项目的问题。我无法通过应用此方法再次修复它。在我的工作机器上,我在代理/防火墙后面,尝试将 Eclipse 解决方案导入 Android Studio 时出现此错误。对我有用的是在不在代理/防火墙后面的不同机器上转换项目,并从中获取结果并将其导入我的工作机器上。如果您处于类似情况,请尝试一下,让我知道它是否适合您。 很遗憾,由于代理设置,我无法使用此解决方案(所有机器都在代理后面)。尝试了几个选项都没有成功。有什么建议吗?【参考方案4】:

此错误表明您正在尝试使用 HTTPS 协议进行连接,但您的客户端无法验证服务器的证书 - 通常是因为它是自签名的。

使用浏览器连接到https://jcenter.bintray.com,并检查证书链。根证书应由 GeoTrust Global CA 颁发。如果不是这种情况,您的 Internet 提供商或您的雇主会对您的 HTTPS 连接执行 MITM。

如果您信任它们,简单的解决方法是将这些自签名证书添加到 JDK 的 cacerts 密钥库中。如何做到这一点的例子:Windows; Linux/Mac.

【讨论】:

它在 gradle 1.2 中工作。使用“类路径'com.android.tools.build:gradle:0.12.2”和“distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip”。我相信它不接受 gradle 2.1 和构建工具 13+ @JijoThomas 你检查证书链了吗? 将证书添加到 JDK CA 证书存储区是解决此问题的正确方法。感谢您的链接! 我首先尝试过这个 - 没有奏效 - 但尝试过这个:***.com/a/27206173/500096 - 并且奏效了。我认为其他解决方案只是暂时的。 如果你像我一样知道你的防火墙/代理欺骗证书,那就可以了。【参考方案5】:

当您使用公司代理时,通常会发生此错误。我在 MAC 上的解决方案是这样的:

    确定您的 https 连接正在使用证书

    打开钥匙链工具(cmd+空格钥匙链)

    识别找到的证书并将其导出到 certificate.cer 文件

    打开终端并导航到您的 JAVA JRE 安全文件夹:

    cd /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/security

    使用以下命令导入证书:

    sudo keytool -import -alias somealias -file /PATH_TO_EXPORTED_CERTIFICATE/certificate.cer -keystore cacerts -storepass changeit

这就完成了。打开 Android Studio,它将修复 gradle 构建。

【讨论】:

【参考方案6】:

我关闭了我的工作室,当我重新打开项目时,我得到了一个输入代理信息的窗口。在那,我必须选中“启用 HTTPS 代理”复选框,这对我有用!

【讨论】:

【参考方案7】:

请先更改 gradle build tools 版本。您需要更新构建工具版本。还是不行,新建一个项目,检查gradle文件详细信息。 1.5.0 是我安装的最新版本。

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

【讨论】:

【参考方案8】:

在干预它并关注Schizo's answer(你也应该关注它)之后,它不起作用。我意识到 Android Studio 正在使用 java-7-openjdk 但我向 java-8-openjdk 添加了一个证书,所以直到我将其更改为 openJDK 后它才起作用项目结构中的 8,因此请务必检查它,以防它不适合您。

【讨论】:

【参考方案9】:

在浪费大量时间尝试各种解决方案后,这为我解决了这个问题: 检查项目的build.gradle文件中的依赖项->类路径

dependencies 
    classpath 'com.android.tools.build:gradle:2.10'
  

在我的情况下将其更改为 classpath 'com.android.tools.build:gradle:2.0.0-rc1 以解决问题。要知道要使用的正确版本,创建一个新项目并检查 build.gradle 文件。 希望这可以帮助。

【讨论】:

【参考方案10】:

这是一个愚蠢的答案,但对我来说解决这个问题的是重新启动 Android Studio。

我一直在使用 Charles Proxy,我怀疑这与错误的原因有关。关闭代理并重新启动android studio,它工作。想我会发布,因为有时答案很简单,我们甚至忘记尝试它。

【讨论】:

如果你在更新一些组件,而不是更新gradle文件,错误是正常发生的。我多次遇到这个问题并想通了。【参考方案11】:
dependencies 
    classpath 'com.android.tools.build:gradle:1.0.1'   

我把classpath com.android.tools.build:gradle:1.1.3'改成com.android.tools.build:gradle:1.0.0

【讨论】:

【参考方案12】:

还有一个小改动可以帮助你

gradle-wrapper.properties

改变

distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip

distributionUrl=https://services.gradle.org/distributions/gradle-2.4-all.zip

完成更改后同步项目

【讨论】:

【参考方案13】:

我也遇到了同样的问题,问题与证书有关。 1:所以第一步是去Build-> Clean Project。它将为您提供有关错误的详细信息。 2:从堆栈跟踪中复制失败的 URL。例如,构建无法下载某些文件,堆栈跟踪将具有 URL 的信息。 3:在浏览器中打开url,如果能打开就说明你的代理设置没问题,但是java无法信任下载源。 4:所以你需要手动复制证书并放入jre证书。重建应该可以解决问题。 5:或者如果你有最新的jre版本,它可能会解决问题。

【讨论】:

【参考方案14】:

发生这种情况时,我使用的是 Ubuntu:当我在 android studio 2.0 9 preview beta 1 上更改版本时。

如何修复我的 gradle。

只需在 android studio 中创建一个新项目,然后进入并查看 build.grandle 版本 gradle 在我的情况下:

 dependencies 
         classpath 'com.android.tools.build:gradle:2.0.0-beta1'
     

并在我的项目中替换。

我希望它可以帮助其他人。

【讨论】:

【参考方案15】:

就我而言,我必须下载最新的 Java SDK,然后将项目中的 JDK 位置更改为下载的 JDK。显然当前的 JDK 有问题(我的病毒扫描程序对此有一些警告)

【讨论】:

【参考方案16】:

如果这对某人有帮助,我遇到了同样的问题,即使我通过工作室设置设置了代理(这会将 systemProp.http.proxyHostsystemProp.http.proxyHost 的值添加到 gradle.properties),https em> 代理没有设置,所以我在 gradle.properties 中添加了这个

systemProp.https.proxyHost = <your proxy host>
systemProp.https.proxyPort = <your proxy port>

问题解决了!

【讨论】:

【参考方案17】:

从这里https://***.com/a/37962441/4030497回答分享 如果网络出现问题, 尝试添加一行

54.231.14.232 s3.amazonaws.com

到您的 /etc/hosts (..\Windows\System32\drivers\etc\hosts)

【讨论】:

这不是正确的解决方案。在 android studio 更新后,它与 gradle build 版本有关。【参考方案18】:

确保您在 build.gradle 文件中指定了最新的 gradle 版本,并在 gradle-wrapper.properties 文件中指定了最新的 distributionUrl。检查网络连接是否正确[网络连接应该没有防火墙/其他可以停止升级 gradle 的设置]

【讨论】:

【参考方案19】:
distributionUrl=http://services.gradle.org/distributions/gradle-2.1-all.zip

保留http://

【讨论】:

【参考方案20】:

我有同样的问题并解决它,我的指导是我定义了HTTP代理并使用代理连接服务器。其实连接jcenter不需要代理

【讨论】:

【参考方案21】:

将我的 build.gradle 更改为如下所示。

buildscript 
    repositories 
    jcenter()

dependencies 
    classpath 'com.android.tools.build:gradle:1.5.0'



allprojects 
    repositories 
        jcenter()
    


task clean(type: Delete) 
    delete rootProject.buildDir

【讨论】:

【参考方案22】:

将您的 gradle 更新到最新版本。 效果很好。

distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip

希望对你有帮助。

【讨论】:

【参考方案23】:

有时您的应用可能会在您的 graddle 中使用 Crashlytic 捆绑包 而且您的网络无法解析 Crashlytic 库。换句话说,可能是其他库会导致问题。请检查您的互联网是否可以访问并 grep 这些库。

所以它返回一个错误

“错误:原因:对等体未通过身份验证。”

对我来说,我通过注释代码来解决这个问题,该代码演变为 crashlytics lib 并再次编译 ---> 这个问题将我的工作时间消耗到 4 小时来了解和清除它。

T^T

希望我们所有人都远离这个问题。

【讨论】:

以上是关于Android Studio Gradle 构建失败。错误:原因:对等方未通过身份验证的主要内容,如果未能解决你的问题,请参考以下文章

加速Android Studio/Gradle构建

Android Gradle 插件Android Studio 工程 Gradle 构建流程 ② ( settings.gradle 构建脚本分析 | 根目录下 build.gradle 分析 )

Android Studio 无法构建 gradle

Android Studio 和 Gradle - 构建失败

Android Studio Gradle构建脚本

Android Studio 中的 Gradle 构建问题