无法运行我的第一个颤振应用程序

Posted

技术标签:

【中文标题】无法运行我的第一个颤振应用程序【英文标题】:having trouble to run my first flutter app 【发布时间】:2020-08-19 09:46:25 【问题描述】:

当我尝试在 android studio 或命令行中使用 flutter run 运行颤振项目时遇到错误 它给了我这个错误

  Exception in thread "main" java.net.SocketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:851)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:678)
at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:2055)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:183)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1564)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:263)
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)

以错误结束:Gradle 任务 assembleDebug 失败,退出代码为 1

flutter doctor -v的输出

[√] Flutter (Channel stable, v1.12.13+hotfix.9, on Microsoft Windows [Version 10.0.17134.1425], locale en-US) • Flutter 版本 1.12.13+hotfix.9 位于 C:\src\flutter • 框架修订 f139b11009(5 周前),2020-03-30 13:57:30 -0700 • 引擎修订版 af51afceb8 • Dart 版本 2.7.2

[√] Android 工具链 - 为 Android 设备开发(Android SDK 版本 29.0.3) • Android SDK 位于 C:\Users\win10\AppData\Local\Android\android-sdk • Android NDK 位置未配置(可选;对原生分析支持有用) • 平台 android-29,构建工具 29.0.3 • ANDROID_HOME = C:\Users\win10\AppData\Local\Android\android-sdk • Java 二进制文件位于:C:\Program Files\Android\Android Studio\jre\bin\java • Java 版 OpenJDK 运行时环境(内部版本 1.8.0_212-release-1586-b04) • 接受所有 Android 许可证。

[√] Android Studio(3.6版) • C:\Program Files\Android\Android Studio 中的 Android Studio • Flutter 插件版本 45.1.1 • Dart 插件版本 192.7761 • Java 版 OpenJDK 运行时环境(内部版本 1.8.0_212-release-1586-b04)

[√] VS Code,64 位版本(版本 1.34.0) • C:\Program Files\Microsoft VS Code 中的 VS 代码 • Flutter 扩展版本 3.2.0

[√] 已连接设备(1 个可用) • 为 x86 构建的 Android SDK • emulator-5554 • android-x86 • Android 8.1.0 (API 27)(模拟器)

• 未发现任何问题!

PS: 不久前我遇到了另一个问题,所以我像这样更改了 flutter.gradle 文件

buildscript 
repositories 
    google()
    jcenter()
    mavenCentral()

dependencies 
    classpath 'com.android.tools.build:gradle:3.5.0'

【问题讨论】:

【参考方案1】:

您的 Gradle 文件似乎已损坏。

这是你需要做的:

打开 $HOME/.gradle/wrapper/dists 并删除 gralde-xxx-all 。然后执行命令:再次flutter run。

更多信息here。

【讨论】:

对为 x86 构建的设备 Android SDK 使用硬件渲染。如果您得到图形工件,请考虑使用“--enable-software-rendering”启用软件渲染。在调试模式下在为 x86 构建的 Android SDK 上启动 lib\main.dart...正在运行 Gradle 任务“assembleDebug”...(这需要很长时间。)我只是按照你说的做了,它卡在这里 我以前也遇到过这种情况。您要么需要清理 HDD 中的更多内容(这是我的情况),要么需要修复一些网络设置。这里有 4 个有用的链接。 ***.com/questions/59516408/…github.com/flutter/flutter/issues/27310github.com/flutter/flutter/issues/47392***.com/questions/58238026/…【参考方案2】:

我要确切地说我是如何克服这个问题的。一些步骤可能不是必需的,但我做了所有这些:

    卸载flutter和android studio 安装最新版本(android studio 和 flutter) 然后添加

行家 网址'http://download.flutter.io'

在你的 build.gradle 文件中

    然后将编译和目标 sdk 版本更改为 29(只需找到它们并将 29 替换为 28 ) C:\Users\$USER\AndroidStudioProjects\$projectname\android\app\build.gradle 像这样

    compileSdkVersion 29 targetSdkVersion 29

这就是我解决问题的方法。我希望它也适用于你们。

【讨论】:

告诉某人不要使用他们提出问题的语言或框架并不能回答问题。 是的,我找到了解决方案 谢谢!这是一个大大改进的答案。另外,当我留下那条评论时,我错过了你是 OP,所以把你的挫败感误认为是恶作剧。无论如何,感谢更新。【参考方案3】:

进入您的项目文件夹并在

分级 包装 gradle-wrapper

从以下位置更改数字: distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip

【讨论】:

以上是关于无法运行我的第一个颤振应用程序的主要内容,如果未能解决你的问题,请参考以下文章

无法使用真实设备在 vs 代码中运行颤振应用程序

我无法从 android studio 构建或运行我的颤振应用程序,但它可以从命令行运行

无法在 iOS 模拟器上运行颤振应用程序

颤振互联网连接无法在真实设备上运行

无法在 IOS 移动设备上运行我的颤振项目

我的颤振项目无法在 Android 设备上运行,并且提到了一些许可证问题