You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native添加部分依赖包后出现java.net.ConnectException: Connection refused错误

React Native添加依赖后出现Android SDK连接拒绝错误

我刚创建了一个React Native项目,原本运行正常,但添加"react-native-fs": "2.20.0"后出现问题。不止这个包,部分其他包也会触发该错误,但"microsoft-cognitiveservices-speech-sdk": "1.31.0"这类包没问题。

堆栈跟踪信息

java.net.ConnectException: Connection refused
        at java.base/sun.nio.ch.Net.connect0(Native Method)
        at java.base/sun.nio.ch.Net.connect(Unknown Source)
        at java.base/sun.nio.ch.Net.connect(Unknown Source)
        at java.base/sun.nio.ch.NioSocketImpl.connect(Unknown Source)
        at java.base/java.net.Socket.connect(Unknown Source)
        at java.base/java.net.Socket.connect(Unknown Source)
        at java.base/sun.net.NetworkClient.doConnect(Unknown Source)
        at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source)
        at java.base/sun.net.www.http.HttpClient$1.run(Unknown Source)
        at java.base/sun.net.www.http.HttpClient$1.run(Unknown Source)
        at java.base/java.security.AccessController.doPrivileged(Unknown Source)
        at java.base/sun.net.www.http.HttpClient.privilegedOpenServer(Unknown Source)
        at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source)
        at java.base/sun.net.www.protocol.https.HttpsClient.<init>(Unknown Source)
        at java.base/sun.net.www.protocol.https.HttpsClient.New(Unknown Source)
        at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(Unknown Source)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
        at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source)
        at com.android.sdklib.repository.legacy.remote.internal.DownloadCache.openUrl(DownloadCache.java:245)
        at com.android.sdklib.repository.legacy.remote.internal.DownloadCache.downloadAndCache(DownloadCache.java:622)
        at com.android.sdklib.repository.legacy.remote.internal.DownloadCache.openCachedUrl(DownloadCache.java:453)
        at com.android.sdklib.repository.legacy.LegacyDownloader.downloadAndStream(LegacyDownloader.java:82)
        at com.android.repository.impl.downloader.LocalFileAwareDownloader.downloadAndStream(LocalFileAwareDownloader.java:51)
        at com.android.repository.impl.manager.RemoteRepoLoaderImpl.lambda$fetchPackages$0(RemoteRepoLoaderImpl.java:138)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)

package.json内容

{
  "name": "com.example.app",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "android": "react-native run-android",
    "ios": "react-native run-ios",
    "lint": "eslint .",
    "start": "react-native start",
    "test": "jest --coverage",
    "pod-install": "RCT_NEW_ARCH_ENABLED=1 bundle exec pod install"
  },
  "dependencies": {
    "microsoft-cognitiveservices-speech-sdk": "1.31.0",
    "react": "18.2.0",
    "react-native": "0.72.4",
    "react-native-fs": "2.20.0"
  },
  "devDependencies": {
    "@babel/core": "^7.20.0",
    "@babel/preset-env": "^7.20.0",
    "@babel/runtime": "^7.20.0",
    "@react-native/eslint-config": "^0.72.2",
    "@react-native/metro-config": "^0.72.11",
    "@tsconfig/react-native": "^3.0.0",
    "@types/react": "^18.0.24",
    "@types/react-test-renderer": "^18.0.0",
    "babel-jest": "^29.2.1",
    "eslint": "^8.19.0",
    "jest": "^29.2.1",
    "metro-react-native-babel-preset": "0.76.8",
    "prettier": "^2.4.1",
    "react-test-renderer": "18.2.0",
    "typescript": "4.8.4"
  },
  "engines": {
    "node": ">=16"
  }
}

解决方法

1. 检查代理配置

这个错误是Gradle连接Android SDK仓库时被拒绝,优先排查代理:

  • 打开Android Studio,进入Settings > Appearance & Behavior > System Settings > HTTP Proxy
  • 若使用代理,确认地址、端口、账号密码正确;不需要代理就选No proxy,应用后同步Gradle

2. 替换国内镜像仓库

如果是网络访问受限,修改android/build.gradle,把Google、Jcenter替换为国内镜像:

buildscript {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
    }
}

allprojects {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
        mavenLocal()
        maven { url("$rootDir/../node_modules/react-native/android") }
        maven { url("$rootDir/../node_modules/jsc-android/dist") }
    }
}

3. 启用Gradle离线模式

如果已经下载过依赖,临时启用离线模式跳过网络请求:

  • Android Studio中进入File > Settings > Build, Execution, Deployment > Build Tools > Gradle
  • 勾选Offline work,应用后重新运行react-native run-android

4. 调整react-native-fs版本

react-native-fs@2.20.0版本较老,可能和RN 0.72.4不兼容:

  • 升级到最新版:npm install react-native-fs@latest
  • 或者查看该包的release notes,选择适配RN 0.72的版本

5. 清理缓存重新构建

执行以下命令彻底清理缓存后重新安装依赖:

npm cache clean --force
rm -rf node_modules package-lock.json
npm install
cd android && ./gradlew clean
cd .. && react-native run-android

内容的提问来源于stack exchange,提问作者TRose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 03:54:50