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

使用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:
    1. 查看项目android/gradle/wrapper/gradle-wrapper.properties中的distributionUrl字段,获取需要的Gradle版本
    2. 下载对应版本的Gradle压缩包,解压到本地.gradle/wrapper/dists目录下的对应版本文件夹
    3. 重新运行项目
  • 清理缓存:
    • 执行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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 09:07:49