我最近在我的应用程序中升级了我的flutter版本。但是,当我想调试应用程序时,它显示了以下错误。
连接到服务协议时出错:HttpException:在接收到完整标头之前,连接已关闭,uri = {http://127.0.0.1:50795/ws
升级Flutter版本后,是否有人面临相同的问题?如果有任何解决方法,请分享。
答案 0 :(得分:5)
问题主要出在Android Q
上。
您可以将Android版本从Android Q
降级为Android Pie
。
最终可以解决问题。
答案 1 :(得分:4)
现在此问题在github上打开 https://github.com/flutter/flutter/issues/32587
暂时可以通过切换到物理设备而不是仿真器来解决此问题 How to test android apps in a real device with Android Studio?
在github上找到决定(向上链接)
我有一个临时的解决方法,我现在可以使用。当我将模拟器作为Pixel 3 Android 9. + Target(Q API)运行模拟器时,会抛出上述异常。我制作了第二个模拟设备,即Pixel 2 Android 9.0 Target(28个API),并且此目标可以正常工作。
我还注意到,Pixel 2目标在磁盘上占用8.5GB,而Pixel 3目标仅占用1.4GB。这让我想知道Pixel 3目标是否缺少一些重要的东西。
答案 2 :(得分:1)
我遇到了同样的问题。实际上问题出在本机代码中。
如果您从Android Studio中打开your_app/android project
并运行它,则可以跟踪android的问题,对于iOS,也是如此->在XCode中打开ios
项目
因此,在我修复它之后,应用程序将按预期运行
我希望这会有所帮助
答案 3 :(得分:0)
首先关闭您的WiFi /蓝牙。
并运行以下命令:
flutter clean
然后退出或重新启动模拟器。
答案 4 :(得分:0)
没有解决方案,除非Flutter员工对其进行修复。
即使连接物理iOS设备,我也可以在一台计算机(Mac OS Mojave)上安装它。当然,在仿真的Android设备上(无论是哪一种),也会发生这种情况。
我也在具有物理Android设备(版本非常旧的Android版本:5.1)的另一台计算机(也是MacOS Mojave)中遇到此问题。
flutter clean
完全不能解决我的情况。
答案 5 :(得分:0)
如果您在iOS版本上遇到此问题,请按照以下步骤操作
转到 Runner -> editSchema -> 运行->将构建配置更改为 调试。
如果您处于发布模式,则在android studio上运行时会遇到此问题。
答案 6 :(得分:0)
我找到了解决方案/解决方法。对我来说,它只能在物理设备上运行,而不能在模拟器上运行。简单的解决方法是使用x86环境的仿真器,而不是x86_64仿真器。
答案 7 :(得分:0)
我通过设置request.persistentConnection = false来解决此问题。 (默认为true)
在有人遇到相同问题的情况下写这个……
答案 8 :(得分:0)
像维塔利(Vitaly)说..
在通过iOS的Xcode进行构建时,我也正努力地强制执行此错误,我想对于具有Android Studio的Android也是如此。
对于iOS,请执行flutter build ios --release
,然后在Xcode中打开/运行项目
对于Android,请执行flutter build apk --release
,然后在Android Studio中打开/运行项目
在通过flutter进行调试时,这似乎是一个问题...如果发现其他问题,我将更新此答案,但使用此方法似乎很稳定
答案 9 :(得分:0)
我弄清楚了如何限制NetworkImage的基础HttpClient上的连接!
我全局覆盖了HttpClient :(参考:Override HttpClient globally)
class MyHttpOverrides extends HttpOverrides {
@override
HttpClient createHttpClient(SecurityContext context) {
return super.createHttpClient(context)
..maxConnectionsPerHost = 5;
}
}
void main() {
HttpOverrides.global = MyHttpOverrides();
runApp(MyApp());
}
答案 10 :(得分:0)
在将Flutter与http软件包一起使用时,我遇到了相同的错误。
import 'package:http/http.dart' as http;
...
http.Response response = http.get('url')
很好。但是当我去获取response.statusCode
时,它出现了Error connecting
错误。
我发现我在PC上使用SSR / v2Ray。我通过在Android Emulator扩展控件面板上设置代理来解决此问题。
答案 11 :(得分:0)
在我的情况下(错误“HttpException: Connection closed before full header was received”)调用是使用 Microsoft Internet Information Services 作为后端的 https 地址,在 IIS 网站的 SSL 设置中,我错误地设置了“客户端证书:接受”而不是“客户端证书:忽略”,设置“忽略”解决了问题。
答案 12 :(得分:0)
I was getting the same issue in POST request while sending the Images as multipart
Resolved by using
contentType: MediaType('image', 'jpeg') in the http.MultipartFile function
e.g
request.files.add(
http.MultipartFile(
'image',
stream,
length,
filename: basename(_image1.path),
contentType: MediaType('image', 'jpeg'),
),
);
where 'image' is the paramter name.
Don't forget to import 'package:http_parser/http_parser.dart';
for MediaType.
Other Mediatype which you can use are
"image/png"
"image/jpg"
"image/jpeg"
And I am sending this too in Header "Content-Type": "multipart/form-data"
答案 13 :(得分:0)
这是我的问题,这对我有用:
问题
应用程序会突然崩溃
原因
我正在使用 cached_network_image,当用户上传超过 2MB 的重照片时,缓存耗尽内存然后应用程序崩溃。没有警告。
解决方案
使用 FadeInImage.memoryNetwork() 或其他类似 NetworkImage() 但不使用 cache_network_image,它仅适用于小于 2 MB 的照片
谢谢:)