【问题标题】:Gradle wrapper Tag Mismatch errorGradle 包装器标签不匹配错误
【发布时间】:2023-03-24 15:30:01
【问题描述】:

我正在尝试使用 gradle 及其包装器手动配置 Android 项目,但我总是遇到同样的错误。

我可以使用以下build.gadle 文件生成gradlew 脚本:

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.1'
    }
}

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "23.0.1"
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.6'
}

当我启动 gradlew 脚本时出现 SSL 错误,这里是堆栈跟踪:

Downloading https://services.gradle.org/distributions/gradle-2.6-bin.zip
...............
Exception in thread "main" javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLException: Tag mismatch!
        at sun.security.ssl.SSLSocketImpl.checkEOF(SSLSocketImpl.java:1541)
        at sun.security.ssl.AppInputStream.available(AppInputStream.java:60)
        at java.io.BufferedInputStream.available(BufferedInputStream.java:410)
        at sun.net.www.MeteredStream.available(MeteredStream.java:170)
        at sun.net.www.http.KeepAliveStream.close(KeepAliveStream.java:85)
        at java.io.FilterInputStream.close(FilterInputStream.java:181)
        at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.close(HttpURLConnection.java:3408)
        at org.gradle.wrapper.Download.downloadInternal(Download.java:77)
        at org.gradle.wrapper.Download.download(Download.java:44)
        at org.gradle.wrapper.Install$1.call(Install.java:62)
        at org.gradle.wrapper.Install$1.call(Install.java:48)
        at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
        at org.gradle.wrapper.Install.createDist(Install.java:48)
        at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128)
        at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)
Caused by: javax.net.ssl.SSLException: Tag mismatch!
        at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
        at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949)
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1020)
        at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:930)
        at sun.security.ssl.AppInputStream.read(AppInputStream.java:105)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:284)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
        at sun.net.www.MeteredStream.read(MeteredStream.java:134)
        at java.io.FilterInputStream.read(FilterInputStream.java:133)
        at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:3335)
        at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:3328)
        at org.gradle.wrapper.Download.downloadInternal(Download.java:62)
        ... 7 more
Caused by: javax.crypto.AEADBadTagException: Tag mismatch!
        at com.sun.crypto.provider.GaloisCounterMode.decryptFinal(GaloisCounterMode.java:524)
        at com.sun.crypto.provider.CipherCore.finalNoPadding(CipherCore.java:1023)
        at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:960)
        at com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:479)
        at javax.crypto.Cipher.doFinal(Cipher.java:2377)
        at sun.security.ssl.CipherBox.decrypt(CipherBox.java:461)
        at sun.security.ssl.InputRecord.decrypt(InputRecord.java:172)
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1015)
        ... 16 more

【问题讨论】:

    标签: java android gradle build


    【解决方案1】:

    所以我终于想出了一个解决方案。 事实证明,通过 HTTPS 从 http://services.gradle.org/distributions/ 下载包装器当时似乎无法正常工作。

    然后我遇到了另一个问题,下载的存档已损坏...所以诀窍是从导航器下载存档并在 gradle/wrapper/gradle-wrapper.properties 文件的路径中手动提取它,然后它就像一个魅力!

    希望服务器能尽快修复。我仍然想知道问题是否不是来自我的 Java 安装,不过,我正在运行 Arch Linux 并尝试openjdk8,jdk8 和jdk7,每次我更改版本时,要么我领先一步错误消息和堆栈跟踪不同。我将在 windows 上尝试并更新这篇文章。

    编辑 1:结果证明它在 Windows 上运行良好!问题来自我的 Java 安装。

    编辑 2:我在朋友的 Internet 连接上尝试了其他地方,并惊讶它就像一个魅力......问题可能是我的 ISP(免费)或他们给我的路由器。

    【讨论】:

    • 我的电脑使用的 Wifi 加密狗有一个非常相似的问题。我只是通过我的手机使用 USB 网络共享来使用 wifi。不再有一半下载和网络错误!
    【解决方案2】:

    我已经设法通过连接到 VPN 并执行重新同步来解决该问题。下载成功并同步到。所以看来我们遇到了网络问题。

    【讨论】:

    • 已经有一个接受的答案,所以 OP 的问题已经解决,这是帮助 OP 的唯一目的。但是由于问题已成功回答,因此您的回答是多余的。此外,您不会添加一些高质量的信息,因此无需仅发布 something。
    • 在我的情况下,情况正好相反:从 vpn 断开连接解决了问题。除了这个奇怪的 SSLException,我现在在使用我的 VPN 时遇到了问题。这绝对是一个网络问题,对我来说很难追查,而这种解决方法就是这样做的。
    【解决方案3】:
    【解决方案4】:
    • 我之前遇到过这个问题,是不完整或不正确造成的 下载 gradle 版本。

    • 在 gradle-wrapper.properties 中更改以下行

      distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
      
    • 单击文件 --> 使缓存无效/重新启动

    • 然后点击同步按钮同步gradle文件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-17
      • 1970-01-01
      • 2012-09-29
      • 2015-07-10
      相关资源
      最近更新 更多