运行空React Native应用至安卓手机时遇连接及插件问题
解决React Native安卓构建连接及Kotlin插件找不到问题
问题描述
初始问题
按官方文档创建空React Native应用后,执行npm run android持续出现连接拒绝错误,已关闭Windows 11防火墙,尝试过VS Code、Android Studio、PowerShell执行命令,结果一致。
初始错误日志:
PS C:\A\MyApp> npm run android > MyApp@0.0.1 android > react-native run-android info JS server already running. info 💡 Tip: Make sure that you have set up your development environment correctly, by running react-native doctor. To read more about doctor command visit: https://github.com/react-native-community/cli/blob/main/packages/cli-doctor/README.md#doctor Exception in thread "main" java.net.ConnectException: Connection refused: connect at java.base/java.net.PlainSocketImpl.waitForConnect(Native Method) at java.base/java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:107) at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:412) at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:255) at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:237) at java.base/java.net.Socket.connect(Socket.java:609) at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:177) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:509) at java.base/sun.net.www.http.HttpClient$1.run(HttpClient.java:561) at java.base/sun.net.www.http.HttpClient$1.run(HttpClient.java:559) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/sun.net.www.http.HttpClient.privilegedOpenServer(HttpClient.java:558) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:599) at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:266) at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:373) at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:216) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1208) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081) at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:193) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1592) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520) at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:250) at org.gradle.wrapper.Download.downloadInternal(Download.java:109) at org.gradle.wrapper.Download.download(Download.java:89) at org.gradle.wrapper.Install$1.call(Install.java:83) at org.gradle.wrapper.Install$1.call(Install.java:63) at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:69) at org.gradle.wrapper.Install.createDist(Install.java:63) at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:109) at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:66) error Failed to install the app.
更新后问题
将配置文件中Gradle版本修改为本地已安装版本后,连接错误消失,但出现org.jetbrains.kotlin.jvm:1.8.20插件无法找到的错误,怀疑仍存在连接问题。
更新后错误日志:
FAILURE: Build failed with an exception. * Where: Build file 'C:\A\MyApp\node_modules\@react-native\gradle-plugin\build.gradle.kts' line: 13 * What went wrong: Plugin [id: 'org.jetbrains.kotlin.jvm', version: '1.8.20'] was not found in any of the following sources: - Gradle Core Plugins (plugin is not in 'org.gradle' namespace) - Plugin Repositories (could not resolve plugin artifact 'org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:1.8.20') Searched in the following repositories: MavenRepo Google Gradle Central Plugin Repository * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 10s error Failed to install the app.
解决方案
针对连接拒绝问题
- 修改Gradle镜像:在项目根目录的
gradle/wrapper/gradle-wrapper.properties中,将distributionUrl替换为国内镜像(版本号需与本地Gradle匹配),示例:distributionUrl=https://mirrors.aliyun.com/maven/gradle/distributions/gradle-7.5-bin.zip - 检查代理配置:若使用代理,在用户目录的
.gradle/gradle.properties(Windows路径:C:\Users\你的用户名\.gradle\gradle.properties)添加代理信息;无需代理则清空文件内的代理配置:systemProp.http.proxyHost=你的代理IP systemProp.http.proxyPort=你的代理端口 systemProp.https.proxyHost=你的代理IP systemProp.https.proxyPort=你的代理端口
针对Kotlin插件找不到问题
- 添加国内镜像仓库:在项目根目录的
build.gradle(或build.gradle.kts)中,为buildscript和allprojects的repositories添加阿里云Kotlin镜像:
Groovy版本:
Kotlin DSL版本:buildscript { repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'https://maven.aliyun.com/repository/central' } maven { url 'https://maven.aliyun.com/repository/kotlin' } } dependencies { classpath "com.android.tools.build:gradle:7.4.2" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.20" } } allprojects { repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'https://maven.aliyun.com/repository/central' } maven { url 'https://maven.aliyun.com/repository/kotlin' } } }buildscript { repositories { maven(url = "https://maven.aliyun.com/repository/google") maven(url = "https://maven.aliyun.com/repository/jcenter") maven(url = "https://maven.aliyun.com/repository/central") maven(url = "https://maven.aliyun.com/repository/kotlin") } dependencies { classpath("com.android.tools.build:gradle:7.4.2") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.20") } } allprojects { repositories { maven(url = "https://maven.aliyun.com/repository/google") maven(url = "https://maven.aliyun.com/repository/jcenter") maven(url = "https://maven.aliyun.com/repository/central") maven(url = "https://maven.aliyun.com/repository/kotlin") } } - 清理Gradle缓存:执行命令清理缓存并刷新依赖:
gradlew clean gradlew build --refresh-dependencies - 手动安装插件:若网络问题无法解决,下载对应版本的
kotlin-gradle-plugin,添加到本地仓库或直接指定本地依赖路径。
内容的提问来源于stack exchange,提问作者b-612
相关产品推荐
相关产品推荐

