"main"线程中的异常: javax.net.ssl.SSLException: readHandshakeRecord。

3
我将尝试使用AppCenter来实现CI/CD。 我已经将我的Bitbucket分支与AppCenter同步。 当尝试从AppCenter构建代码时,出现以下错误:
command]/Users/runner/work/1/s/gradlew clean :app:assembleRelease

Downloading https://services.gradle.org/distributions/gradle-7.0.2-bin.zip

Exception in thread "main" javax.net.ssl.SSLException: readHandshakeRecord
    at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1309)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:435)
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:197)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1570)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:268)
    at org.gradle.wrapper.Download.downloadInternal(Download.java:87)
    at org.gradle.wrapper.Download.download(Download.java:67)
    at org.gradle.wrapper.Install$1.call(Install.java:68)
    at org.gradle.wrapper.Install$1.call(Install.java:48)
    at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:69)
    at org.gradle.wrapper.Install.createDist(Install.java:48)
    at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:107)
    at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:63)
    Suppressed: java.net.SocketException: Broken pipe (Write failed)
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
        at java.net.SocketOutputStream.write(SocketOutputStream.java:155)
        at sun.security.ssl.SSLSocketOutputRecord.encodeAlert(SSLSocketOutputRecord.java:81)
        at sun.security.ssl.TransportContext.fatal(TransportContext.java:355)
        at sun.security.ssl.TransportContext.fatal(TransportContext.java:267)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:438)
        ... 13 more
Caused by: java.net.SocketException: Broken pipe (Write failed)
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:155)
    at sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:251)
    at sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89)
    at sun.security.ssl.Finished$T12FinishedProducer.onProduceFinished(Finished.java:399)
    at sun.security.ssl.Finished$T12FinishedProducer.produce(Finished.java:374)
    at sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:421)
    at sun.security.ssl.ServerHelloDone$ServerHelloDoneConsumer.consume(ServerHelloDone.java:182)
    at sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:377)
    at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:444)
    at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:422)
    at sun.security.ssl.TransportContext.dispatch(TransportContext.java:182)
    at sun.security.ssl.SSLTransport.decode(SSLTransport.java:152)
    at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1392)
    at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1300)
    ... 14 more
Error: /Users/runner/work/1/s/gradlew failed with return code: 1
    at ChildProcess.<anonymous> (/Users/runner/work/_tasks/Gradle_8d8eebd8-2b94-4c97-85af-839254cc6da4/1.128.0/node_modules/vsts-task-lib/toolrunner.js:569:30)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:920:16)
    at Socket.<anonymous> (internal/child_process.js:351:11)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at Pipe._handle.close [as _onclose] (net.js:509:12)
##[error]Error: /Users/runner/work/1/s/gradlew failed with return code: 1

代码在Android Studio中运行良好,可以构建APK。

甚至尝试将https://services.gradle.org/distributions/gradle-7.0.2-bin.zip从https更改为http,但这也没有起作用。

请帮我解决这个问题。


我也遇到了同样的问题。你的情况是间歇性的吗?就是说,有时候构建成功,有时候会因为 SSL 异常而失败?这就是我的情况。 - Matthew Lowe
1个回答

1
我把分发URL放到浏览器中发现它被重定向到一个不同于services.gradle.org的主机,这可能会给appcenter带来间歇性的证书问题。因此(无论可维护性如何),我在gradle-wrapper.properties文件中更改了主机,在目前为止一切都很好...
请尝试进行以下更改: distributionUrl=https\://downloads.gradle-dn.com/distributions/gradle-7.0.2-bin.zip

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接