比如我现在安装了一个画k线图的第三方库 flutter_candlesticks: ^0.1.1 当我们升级完flutter后(升级后flutter SDK的版本为2.1.0),重新get第三方库时发现以下这个错误
Because xxxxxx depends on flutter_candlesticks >=0.0.2 which requires SDK version >=1.23.0 <=2.0.0, version solving failed. pub get failed (1) exit code 1
这个错误提示说明的挺清楚的,意思就是说我们要安装的0.1.1版本的flutter_candlesticks库,它从0.0.2版本开始就对flutter SDK的版本有要求了,要求flutter SDK的版本必须在>=1.23.0 <=2.0.0之间,那么我们当前的flutter SDK版本是2.1.0,显然不在这个范围内,所以无法安装. 我们无法控制作者做出对应的修改,然而我们坐等不知猴年马月作者才会更新更不是个办法.幸好现在大多数的第三方库源码都是托管在github上的,所以我们只要到github上fork一份项目,然后修改版本范围,最后在在配置文件中指明这个库的来源从我们指定的github上获取就行了. 首先我们到flutter第三方库的网站上找到这个库
然后你在左边的”关于”栏目中可以看到这个库在github上的链接”Homepage(GitHub)” 点击进入github,然后fork这个项目, 至于fork的作用这里不再多说,相当于你在github服务器端clone了一次这个项目,这也意味着你拥有了一个这个项目的副本,也就拥有了修改的权利,因为现在这个副本是在你的帐号下,如图:
接下来就可以自由修改了,我们主要的目的是修改配置文件,让他的SDK要求适应新版本,直接找到项目列表中的配置文件pubspec.yaml,在浏览器中直接点开这个文件
在右上角的工具栏那有个笔一样的图标,点击他就能直接在服务器端编辑这个文件了,不用clone到本地. 我们找到文件中以下部分内容
这里就是罪魁祸首了,直接修改为
即可,修改后点击页面底部的”commit changes”就可以提交修改了. 提交成功后,在顶部项目名称那一行的下面一行是最后一次提交的信息,现在看到的应该是这样
点击前面的hash值,查看这次提交的完整的hash值,记住这个值,一伙项目中要用到.
github端的事已经完成,剩下的就是修改你的项目配置文件,让这个库安装的时候从我们自己的github库上安装,打开项目中的pubspec.yaml配置文件,正常情况下应该是长这样的
现在我们要修改flutter_candlesticks库从我们自己的github上安装,直接照以下格式修改即可 修改后长这样
很明显,我们将后面的版本号去掉了,增加了git属性,说明是从git上安装,url指明了这个库在github上的位置,而ref指定了要安装的版本,就是刚才我们最后一次提交的hash值.好了,重新flutter get一下
搞定收工!
作为一个ios开发者,遇到问题的时候,有一个学习的氛围跟一个交流圈子特别重要对自身有很大帮助,众人拾柴火焰高 这是一个我的iOS交流群:711315161,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!希望帮助开发者少走弯路。
作者:月夜录 链接:原文