赞
踩
我的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
4、测试一下:
curl -v www.google.com
有结果返回则证明设置成功了,如下图:
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
或者直接指定谷歌:
flutter run -d chrome --web-port=8080 --web-hostname=127.0.0.1 --web-renderer html
其中 --web-renderer html
是为了设置web图片正常显示的参数。
另外的等效参数:
--release --web-renderer html
--web-renderer html
6、理论上只是第一次启动web程序时,需要像上边使用命令行启动,后面可以加入启动参数,直接使用按钮启动:
--web-port=8080 --web-hostname=127.0.0.1 --web-renderer html
方案二:如实以上的命令行方法不奏效,还可以使用proxifier与配合代理工具(具体教程网上搜),实现全局代理。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。