下载了一个开源项目flutter-folio
编译的时候一直在说方法找不到。
Error: Method not found:
是cloud_firebase_web跳转找firebase_core的某个方法的时候说找不到。
按照网上说的在firebase包定义前面添加关键字dependency_overrides:也不行。
开始的时候尝试着自己修改方法名让它能够找到,一直搞不定。总感觉这个是系统自带的类库,不应该发生这么低级的错误了。
最后仔细看了一下他们的版本不对应,有可能是版本问题,cloud_firebase_web是1.0.7,使用工具跳转到firebase_core的时候是1.17.0
然后就尝试着手动修改firebase_core关联的包,不要让它自动匹配版本,而是强制使用某一个固定版本。
比如之前是这么写的:firebase_core: ^1.0.1,^含义是找到大于1.0.1小于2.0.0的最高版本
修改成:firebase_core: 1.4.0
具体有哪些版本可以去这个网站上找:https://pub.dev
然后就可以了。
事后分析原因是:firebase_core虽然没有修改大版本号,当前依然是1.17.0。但是里面做了不兼容的改动,删除了某些方法,导致了找不到。而cloud_firebase_web当前的最高版本已经是3点几了,因此对应firebase_core版本的cloud_firebase_web在2或者3才兼容。
所以包管理真的是一件比较麻烦的事情。