使用USB调试Flutter时出现SocketException异常
Flutter USB调试运行时Gradle连接超时问题
安装Flutter后,通过USB调试运行项目时持续出现如下错误:
Launching lib\main.dart on 123456ABC in debug mode... Exception in thread "main" java.net.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:325) at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:350) at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:803) at java.base/java.net.Socket$SocketInputStream.read(Socket.java:966) at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:484) at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:478) at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:160) at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:111) at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1510) at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1425) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426) at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:580) at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:187) at java.base/sun.net.www.protocol.http.HttpURLConnection.followRedirect0(HttpURLConnection.java:2902) at java.base/sun.net.www.protocol.http.HttpURLConnection.followRedirect(HttpURLConnection.java:2811) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1927) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589) at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224) at org.gradle.wrapper.Download.downloadInternal(Download.java:58) at org.gradle.wrapper.Download.download(Download.java:44) at org.gradle.wrapper.Install$1.call(Install.java:61) 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) Running Gradle task 'assembleDebug'... 55.7s Exception: Gradle task assembleDebug failed with exit code 1
Flutter Doctor检测结果无异常:
[√] Flutter (Channel stable, 3.13.9, on Microsoft Windows [Version 10], locale en-US) [√] Windows Version (Installed version of Windows is version 10 or higher) [√] Android toolchain - develop for Android devices (Android SDK version 34.0.0) [√] Chrome - develop for the web [√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.7.6) [√] Android Studio (version 2022.2) [√] VS Code (version 1.79.2) [√] Connected device (4 available) [√] Network resources • No issues found!
该问题仅在当前系统出现,其他系统可正常使用Flutter。
解决方案
- 排查网络环境:关闭全局代理或VPN,确保网络能正常访问Gradle分发服务器;若需代理,在项目
android/gradle.properties中配置正确的代理参数:org.gradle.jvmargs=-Xmx1536M -Dhttp.proxyHost=你的代理地址 -Dhttp.proxyPort=代理端口 -Dhttps.proxyHost=你的代理地址 -Dhttps.proxyPort=代理端口 - 手动替换Gradle Wrapper:
- 查看项目
android/gradle/wrapper/gradle-wrapper.properties中的distributionUrl字段,获取需要的Gradle版本 - 下载对应版本的Gradle压缩包,解压到本地
.gradle/wrapper/dists目录下的对应版本文件夹 - 重新运行项目
- 查看项目
- 清理缓存:
- 执行
flutter clean清除Flutter项目缓存 - 删除项目根目录的
.build文件夹和android/.gradle文件夹 - 执行
flutter pub get重新获取依赖
- 执行
- 调整Gradle超时设置:在项目
android/gradle.properties中添加超时配置:org.gradle.connectionTimeout=120000 org.gradle.parallel=true - 重新检查USB连接:插拔设备,确保设备已开启USB调试并授权当前电脑,在命令行执行
adb devices确认设备正常连接
内容的提问来源于stack exchange,提问作者Zeaforx
相关产品推荐
相关产品推荐

