【问题标题】:Android Studio Gradle build failed. Error:Cause: peer not authenticatedAndroid Studio Gradle 构建失败。错误:原因:对等方未通过身份验证
【发布时间】: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

标签: android


【解决方案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 证书存储区是解决此问题的正确方法。感谢您的链接!
  • 我首先尝试过这个 - 没有奏效 - 但尝试过这个:stackoverflow.com/a/27206173/500096 - 并且奏效了。我认为其他解决方案只是暂时的。
  • 如果你像我一样知道你的防火墙/代理欺骗证书,那就可以了。
【解决方案5】:

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

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

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

  3. 识别找到的证书并将其导出到 certificate.cer 文件
  4. 打开终端并导航到您的 JAVA JRE 安全文件夹:

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

  5. 使用以下命令导入证书:

    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://stackoverflow.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

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

                                  【讨论】:

                                    猜你喜欢
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 2016-11-20
                                    • 2016-03-27
                                    • 1970-01-01
                                    • 1970-01-01
                                    相关资源
                                    最近更新 更多