解决flutter sdk升级之后,出现的例如csslib 0.14.5 which doesn't match any version,version solving failed的问题.

       说一下我自己的情况.我从0.5.1beta版本更新到0.6beta版本之后,新建一个hello word项目,都一大堆的报错.有时候觉得,flutter团队应该不会犯下这么低级的错误吧?如图所示.报because xxx depends on csslib 0.14.5 which doesn't match any versions, version solving failed.pub get failed(1)的错误.此刻我头都大,神马情况,连打开一个官方demo hello_word都成问题.这不是要灭绝我大中华程序猿么?

解决flutter sdk升级之后,出现的例如csslib 0.14.5 which doesn't match any version,version solving failed的问题._第1张图片

        其实,归根到底,这是中国政府屏蔽了部分外国网络,导致软件连接外部网络很慢甚至提取不到数据所造成的.这是根本原因,但直接原因,是由于我们设置不当所造成.最近依靠自己瞎撞,慢慢摸懂了flutter的获取第三方库的机制.下面进行一 一说明.

        1.我们在根据flutter中文网安装flutter的时候,设置了环境变量PUB_HOSTED_URL为https://pub.flutter-io.cn .但很多人不知道这是什么意思,这其实是把flutter原来下载第三方库存的地址https://pub.dartlang.org(官方正宗) 改为了 https://pub.flutter-io.cn.   cn地址是专门给国内用的,但是内容没有官方正宗org那个最新,如果你细心,会发现例如dio库此刻在org已经有了1.0.3,但cn地址里面只能查询到dio的最新版还只到1.0.0,这很容易让人产生一个误会,就是你看到org的地址里面有最新版本1.0.3,我在pubspec.yaml声明了dio: 1.0.3,却提示我doesn't match any version的原因,因为你设置指向的cn地址里面,还没有放上那个第三方库的最新版,如果你为了避免这个问题,同时你又已经设置了PUB_HOSTED_URL 为cn地址,那平常去查可用版本的时候就上cn地址去查.

        解决flutter sdk升级之后,出现的例如csslib 0.14.5 which doesn't match any version,version solving failed的问题._第2张图片 

     2.那升级beta版本之后,提示了csslib 0.14.5 which doesn't match any versions又是什么原因呢?打开pubspec.lock文件,你会发现刚打开的官方demo的csslib的地址指向了 https://pub.dartlang.org,于是我们采取把pub.dartlang.org全部改为了https://pub.flutter-io.cn.

   解决flutter sdk升级之后,出现的例如csslib 0.14.5 which doesn't match any version,version solving failed的问题._第3张图片    解决flutter sdk升级之后,出现的例如csslib 0.14.5 which doesn't match any version,version solving failed的问题._第4张图片

同时,我们采取简单粗暴的方式.找到flutter的安装目录例如D:\flutter\.pub-cache\hosted,找到解决flutter sdk升级之后,出现的例如csslib 0.14.5 which doesn't match any version,version solving failed的问题._第5张图片

如果没有pub.flutter-io.cn的目录,则新建,并且把pub.dartlang.org里面的所有文件,复制到pub.flutter-io.cn的目录里,就是把flutter sdk自带的某些第三方库强制放到我们指定的 pub.flutter-io.cn目录下面.

解决flutter sdk升级之后,出现的例如csslib 0.14.5 which doesn't match any version,version solving failed的问题._第6张图片

搞定如上图所示.然后退出android_studio.重新启动程序,重新在yaml文件上package get,然后重新getdependence,然后还继续报错,则继续退出android_studio,再重新启动一次,基本可以解决问题了.其实就是强制把系统本来指向pub.dartlang.org的文件指向为我们国内网络可以的cn网络.一切搞定.当然,如果你公司的网络很好,可以随便,在android studio下也可以正常指向pub.dartlang.org,则忽略我上面所说的一切,建议把PUB_HOSTED_URL删掉.但我自己试过,我的浏览器可以正常访问pub.dartlang.org,但是在andorid_studio下用这个做基准地址却完全访问不到,获取不了第三方库,很是郁闷,不知道什么原因,可能就是国内网络的原因吧,把皮球扔给zf

你可能感兴趣的:(解决flutter sdk升级之后,出现的例如csslib 0.14.5 which doesn't match any version,version solving failed的问题.)