当前位置:   article > 正文

flutter web设置命令行代理解决运行chrome web时http报错问题以及网络图片加载报错解决方法_flutter run -d chrome --web-renderer canvaskit 这个命

flutter run -d chrome --web-renderer canvaskit 这个命令改了

我的flutter版本是2.8.1
切换flutter2.8.1版本:flutter安装目录下执行 git reset --hard 77d935af4db863f6abd0b9c31c7e6df2a13de57b
报错信息:
HTTP host https://maven.google.com/ is not reachable. Reason: An error occurred while checking the HTTP host:
以及
无法下载 https://chrome-infra-packages.appspot.com/dl/flutter/web/canvaskit_bundle/+/1e8cK_8LOs0dz4lqd20LwTUYNqfu_4YL-dFG5yK1xXQC 。请确保您具有网络连接,然后重试。SocketException: OS Error: 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据 的请求没有被接受。,errno = 10057,地址 = chrome-infra-packages.appspot.com,端口 = 54966 #93601
原因分析:首次启用web功能进行构建时,终端程序需要访问谷歌下载资源,这时即使挂了代理也无法奏效,原因是这些软件的代理规则只是针对使用IE代理的程序,无法直接代理网络层,则无法使cmd等命令行终端走代理。
解决方案
方案一:使用命令行设置代理并启动flutter web,使cmd走代理(临时)
1、首先启动你的代理工具(v-2-r-a-y,后边端口及协议得根据代理工具来,我这是win环境,所以其http协议的端口是10809)
2、打开Android studio的terminal终端
在这里插入图片描述
3、命令行输入:

set http_proxy=http://127.0.0.1:10809
set https_proxy=http://127.0.0.1:10809
  • 1
  • 2

4、测试一下:

curl -v www.google.com
  • 1

有结果返回则证明设置成功了,如下图:
在这里插入图片描述

5、此时即可运行我们的web程序了,但如果我们直接使用flutter run运行会报错:SocketException: Failed to create server socket (OS Error: Failed to start accept), address = localhost, port = 5682
在这里插入图片描述
所以首次运行需要加入运行参数,命令如下,运行选择谷歌浏览器,

flutter run --web-port=8080 --web-hostname=127.0.0.1 --web-renderer html
  • 1

或者直接指定谷歌:

flutter run -d chrome --web-port=8080 --web-hostname=127.0.0.1 --web-renderer html
  • 1

其中 --web-renderer html是为了设置web图片正常显示的参数。
另外的等效参数:

--release --web-renderer html
--web-renderer html
  • 1
  • 2

6、理论上只是第一次启动web程序时,需要像上边使用命令行启动,后面可以加入启动参数,直接使用按钮启动:

--web-port=8080 --web-hostname=127.0.0.1 --web-renderer html
  • 1

在这里插入图片描述
在这里插入图片描述
方案二:如实以上的命令行方法不奏效,还可以使用proxifier与配合代理工具(具体教程网上搜),实现全局代理。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/825260
推荐阅读
相关标签
  

闽ICP备14008679号