Flutter示例应用无法在AVD虚拟设备启动的问题求助
Flutter基础示例无法在AVD运行(Gradle连接超时)
问题描述
尝试使用代理、VPN,但基础Flutter示例应用仍无法在AVD(Android虚拟设备)上运行!该应用在Chrome中启动运行正常,网络状态良好,能够ping通主机,且flutter doctor检测结果无报错。启动过程中出现如下错误:
Launching lib\main.dart on sdk gphone64 x86 64 in debug mode... main.dart:1 Exception in thread "main" java.net.ConnectException: Connection timed out: connect at java.base/sun.nio.ch.Net.connect0(Native Method) at java.base/sun.nio.ch.Net.connect(Net.java:579) at java.base/sun.nio.ch.Net.connect(Net.java:568) at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588) at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) at java.base/java.net.Socket.connect(Socket.java:633) at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304) at java.base/sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:174) at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:183) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:531) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:636) 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:380) at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:193) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1242) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1128) at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:179) 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) Exception: Gradle task assembleDebug failed with exit code 1
解决方案
1. 检查并调整Gradle代理配置
- 打开项目内的
android/gradle.properties文件,检查是否存在代理配置项。若有,确认代理地址、端口是否正确,或暂时注释掉(添加#前缀):# systemProp.http.proxyHost=your-proxy-host # systemProp.http.proxyPort=your-proxy-port # systemProp.https.proxyHost=your-proxy-host # systemProp.https.proxyPort=your-proxy-port - 同时检查全局Gradle配置文件(Windows路径:
C:\Users\<你的用户名>\.gradle\gradle.properties;Linux/macOS路径:~/.gradle/gradle.properties),做同样的代理检查与调整。
2. 配置Flutter代理(或重置代理)
- 若需要代理,执行以下命令设置Flutter的HTTP/HTTPS代理:
flutter config --set http-proxy http://your-proxy-host:port flutter config --set https-proxy https://your-proxy-host:port - 若无需代理,执行命令重置:
flutter config --unset http-proxy flutter config --unset https-proxy
3. 解决AVD网络代理冲突
- 打开AVD管理器,编辑目标虚拟设备,点击Show Advanced Settings,找到Proxy选项,设置为
No proxy或与系统一致的代理配置。 - 重启AVD后,重新尝试运行项目。
4. 手动下载Gradle Wrapper
- 从错误日志中确认需要下载的Gradle版本,直接下载对应版本的zip包。
- 将zip包放到路径
C:\Users\<你的用户名>\.gradle\wrapper\dists\<gradle版本号>\<随机字符串>下,解压后重新执行flutter run。
5. 清除缓存并重新构建
- 执行以下命令清除Flutter和Gradle缓存:
flutter clean cd android ./gradlew clean ./gradlew build --refresh-dependencies - 返回项目根目录,再次运行
flutter run。
内容的提问来源于stack exchange,提问作者Seyed Ahmadreza Dehghanian
相关产品推荐
相关产品推荐

