ReactNative 报错-Unzipping gradle And SocketException

本文介绍了ReactNative项目中使用react-native run-android命令时遇到的gradle下载及解压问题,并提供了详细的解决方案,包括如何处理网络连接错误及解压失败的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ReactNative在使用命令行react-native run-android 的运行的时候有时候会遇到下载gradle的情况,不同的本地环境提示下载的gradle版本不同。
下面介绍下常见的问题
一、 Connection reset at sun.security.ssl.SSLSocketImpl.checkEOF

Exception in thread “main” javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLException: java.net.SocketException: Connection reset
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:3448)atorg.gradle.wrapper.Download.downloadInternal(Download.java:77)atorg.gradle.wrapper.Download.download(Download.java:44)atorg.gradle.wrapper.Install 1.call(Install.java:59)
at org.gradle.wrapper.Install$1.call(Install.java:46)
at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
at org.gradle.wrapper.Install.createDist(Install.java:46)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:126)
at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)

一般这种情况时由于你的网路不稳定或者是因为伟大的墙,建议多次重试能够解决。

二、解压失败

Unzipping C:\Users\Mr.gradle\wrapper\dists\gradle-2.14.1-all\8bnwg5hd3w55iofp58khbp6yv\gradle-2.14.1-all.zip to C:\Users\Mr.gradle\wrapper\dists\gradle-2.14.1-all\8bnwg5hd3w55iofp58khbp6yv

这个问题在给出的提示中已经很明确了,压缩包解压失败。原因是因为下载的gradle压缩包存在损坏造成的。建议按照提示下载相应版本的gradle压缩包。

安装步骤:

1.下载对应的gradle安装包
gradle下载地址

2.将压缩包复制到目录C:\Users\你自己的用户名.gradle\wrapper\dists\gradle-2.14.1-all\8bnwg5hd3w55iofp58khbp6yv 最后这个随机的字符串是下载工具自动生成的,针对每个版本的随机数是不一样的,不要盲目复制创建路径

### 如何下载 Gradle Wrapper JAR 文件 Gradle Wrapper 是一种机制,允许开发者无需手动安装 Gradle 即可在任何环境中构建项目。`gradle-wrapper.jar` 文件Gradle Wrapper 的核心组件之一,通常位于项目的 `gradle/wrapper/` 目录下。 如果需要单独下载 `gradle-wrapper.jar` 文件,可以通过以下方式实现: #### 方法一:通过官方 Maven 仓库下载 Gradle 提供了一个公开的 Maven 仓库,其中包含了不同版本的 `gradle-wrapper.jar` 文件。可以直接访问以下 URL 下载所需版本的文件: ``` https://services.gradle.org/distributions/gradle-{version}-wrapper.jar ``` 将 `{version}` 替换为目标 Gradle 版本号。例如,要下载 Gradle 7.6 对应的 Wrapper JAR 文件,则可以访问以下链接: ``` https://services.gradle.org/distributions/gradle-7.6-wrapper.jar ``` 此方法适用于希望独立获取 `gradle-wrapper.jar` 文件的情况[^1]。 --- #### 方法二:通过现有项目生成 如果已有支持 Gradle 构建的项目环境,可以在项目根目录执行以下命令来自动生成 `gradle-wrapper.jar` 文件及其相关配置: ```bash gradle wrapper ``` 上述命令会基于当前系统的 Gradle 配置创建完整的 Gradle Wrapper 结构,其中包括 `gradle-wrapper.jar` 和其他必要的文件(如 `gradle-wrapper.properties`)。这些文件会被放置在项目的 `gradle/wrapper/` 路径下[^2]。 --- #### 方法三:解析并提取已有的 Wrapper ZIP 包 当使用 `gradlew` 或者 `gradlew.bat` 执行构建时,Gradle 会在用户的本地缓存路径中存储对应版本的 Wrapper 数据包。具体位置通常是: ``` ~/.gradle/wrapper/dists/ ``` 在此路径下找到目标版本的压缩包(`.zip` 文件),解压后即可获得 `gradle-wrapper.jar` 文件。例如,对于 Gradle 5.1.1 版本,其解压过程类似于以下描述的内容[^5]: ``` Unzipping C:\Users\<用户名>\.gradle\wrapper\dists\gradle-5.1.1-bin\... to C:\Users\<用户名>\.gradle\wrapper\dists\gradle-5.1.1-bin\ ``` --- #### 自动生成后的结构说明 完成以上任意一种操作后,项目中的 `gradle/wrapper/` 目录应该包含以下文件- **gradle-wrapper.jar**: 主要负责初始化和加载特定版本的 Gradle- **gradle-wrapper.properties**: 定义了 Wrapper 使用的具体 Gradle 版本和其他相关信息。 以下是典型的 `gradle-wrapper.properties` 文件内容示例: ```properties distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip ``` --- ### 注意事项 - 如果希望通过网络动态分发 Wrapper,请确保 `distributionUrl` 属性指向有效的在线资源地址。 - 当前机器上未安装 Gradle 时,也可以直接依赖于 `gradlew` 或 `gradlew.bat` 来启动构建流程,并由工具自行处理所需的 Gradle 环境设置[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值