下載了一個(gè)開源項(xiàng)目flutter-folio
編譯的時(shí)候一直在說方法找不到。
Error: Method not found:
是cloud_firebase_web跳轉(zhuǎn)找firebase_core的某個(gè)方法的時(shí)候說找不到。
按照網(wǎng)上說的在firebase包定義前面添加關(guān)鍵字dependency_overrides:也不行。
開始的時(shí)候嘗試著自己修改方法名讓它能夠找到,一直搞不定??偢杏X這個(gè)是系統(tǒng)自帶的類庫,不應(yīng)該發(fā)生這么低級的錯(cuò)誤了。
最后仔細(xì)看了一下他們的版本不對應(yīng),有可能是版本問題,cloud_firebase_web是1.0.7,使用工具跳轉(zhuǎn)到firebase_core的時(shí)候是1.17.0
然后就嘗試著手動(dòng)修改firebase_core關(guān)聯(lián)的包,不要讓它自動(dòng)匹配版本,而是強(qiáng)制使用某一個(gè)固定版本。
比如之前是這么寫的:firebase_core: ^1.0.1,^含義是找到大于1.0.1小于2.0.0的最高版本
修改成:firebase_core: 1.4.0
具體有哪些版本可以去這個(gè)網(wǎng)站上找:https://pub.dev
然后就可以了。
事后分析原因是:firebase_core雖然沒有修改大版本號,當(dāng)前依然是1.17.0。但是里面做了不兼容的改動(dòng),刪除了某些方法,導(dǎo)致了找不到。而cloud_firebase_web當(dāng)前的最高版本已經(jīng)是3點(diǎn)幾了,因此對應(yīng)firebase_core版本的cloud_firebase_web在2或者3才兼容。
所以包管理真的是一件比較麻煩的事情。