解决Flutter报错:Unexpected end of file from server

(只想看结论可跳到结尾)
自己是个Android程序员,今天正好打算尝试一下Flutter。
官方文档说的,下载了SDK,为Android Studio安装了插件,运行flutter doctor也没有问题。

结果项目创建好(默认代码),第一次执行,就报错

Exception in thread "main" java.net.SocketException: Unexpected end of file from server

折腾了整整三个小时,这里为大家排除几个可能性:

  1. 换模拟器不行(亲测)
  2. 重启电脑、关闭防火墙不行(亲测)
  3. 用flutter create ** 命令行方式创建项目不行(亲测)
  4. 创建项目时取消androidx.**、kotlin、swift等选项也不行(亲测)Orz

为了寻找原因,我首先在Settings->Language&Frameworks->Flutter里开启了Enable verbose logging

这次打印出了触发这个报错的命令:

gradlew.bat -q -Ptarget=D:\FlutterWorkspace\app3\lib\main.dart -Ptrack-widget-creation=true -Pfilesystem-scheme=org-dartlang-root -Ptarget-platform=android-arm64 assembleDebug

为了打印更详细的日志,把上面的命令去掉-q后手动执行

至此终于发现问题所在:gradle-5.6.2-all.zip下载失败
解决方案:

  1. 换个网
  2. VPN
  3. 手动下载Gradle:比如可以参照https://blog.csdn.net/chrisyuu/article/details/52711025

当然,我最后发现,我这个问题的原因是因为在我的C:/Users/<username>/.gradle/gradle.properties(不是项目下的gradle.properities)中有几行多余的代理设置,删掉就好了……如果有人遇到相同的问题也可以查看一下这个文件~~

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
直接本地的 .aar 文件依赖项不支持构建 AAR。由于任何本地 .aar 文件依赖项的类和 Android 资源不会打包在生成的 AAR 中,因此生成的 AAR 将无法使用。在这种情况下,Android Gradle 插件的早期版本也会生成损坏的 AAR(尽管不会抛出此错误)。如果您的 Flutter 项目中使用了本地的 .aar 文件依赖项,那么您需要将其转换为 Maven 依赖项,或者将其打包为本地 Maven 存储库中的库。您可以使用以下步骤解决此问题: 1. 将本地的 .aar 文件依赖项转换为 Maven 依赖项。您可以使用以下命令将其转换为 Maven 依赖项: ``` ./gradlew :<module-name>:uploadArchives ``` 然后,您可以在项目的 build.gradle 文件中添加以下 Maven 依赖项: ``` repositories { mavenLocal() // other repositories } dependencies { implementation '<group-id>:<artifact-id>:<version>' // other dependencies } ``` 2. 将本地的 .aar 文件依赖项打包为本地 Maven 存储库中的库。您可以使用以下步骤将其打包为本地 Maven 存储库中的库: a. 在项目的 build.gradle 文件中添加以下 Maven 存储库: ``` repositories { mavenLocal() // other repositories } ``` b. 在本地 Maven 存储库中创建一个新的目录,并将 .aar 文件复制到该目录中。 c. 在 .aar 文件所在的目录中创建一个新的 build.gradle 文件,并添加以下内容: ``` apply plugin: 'maven' group = '<group-id>' version = '<version>' artifactId = '<artifact-id>' repositories { mavenLocal() } uploadArchives { repositories { mavenDeployer { repository(url: "file://${System.properties['user.home']}/.m2/repository") } } } ``` d. 在 .aar 文件所在的目录中运行以下命令: ``` ./gradlew uploadArchives ``` 然后,您可以在项目的 build.gradle 文件中添加以下 Maven 依赖项: ``` repositories { mavenLocal() // other repositories } dependencies { implementation '<group-id>:<artifact-id>:<version>' // other dependencies } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值