Google推出flutter這樣一個新的高性能跨平臺(Android,ios)快速開發(fā)框架之后投慈,被業(yè)界許多開發(fā)者所關注承耿。我在接觸了flutter之后發(fā)現(xiàn)這個確實是一個好東西,好東西當然要和大家分享伪煤,對吧加袋。
今天要跟大家分享的是如何解決flutter中依賴版本沖突。
為什么會存在版本依賴問題
我們在開發(fā)flutter項目中抱既,常常會依賴第三方庫职烧。flutter依賴項越多,就越有可能出現(xiàn)依賴版本沖突。
Because new_trend depends on build_runner >=0.9.0whichrequires SDK version >=2.0.0-dev.61 <3.0.0, version solving failed.pub get failed (1)
它的pubspec.yaml文件應該看上去是這樣的
dev_dependencies:? build_runner: ^0.9.0
我們可以通過報錯信息清楚地看到阳堕,這是由于build_runner和SDK版本沖突所導致的跋理。
解決方法
當我們不清楚當前到底應該使用依賴的哪一個版本時,我們可以使用any來解決版本依賴版本沖突的問題恬总。
dev_dependencies:
? build_runner: any
any會自動調(diào)用pub的版本分析器,尋找合適的能夠避免沖突的依賴版本并下載肚邢。我們將不會再看到pub抱怨版本依賴版本沖突啦壹堰!
還沒完!
我們知道我們不應該把any留在這骡湖,所以我們需要將正確的依賴版本把any關鍵字替換掉贱纠!
使用pubspec.lock找到正確的版本
我們打開pubspec.lock,這是根據(jù)當前項目依賴所生成的文件响蕴,記錄了當前使用的依賴版本谆焊。
image
我們可以在這里找到版本分析器為我們找到的無沖突的依賴版本號,這里可以看到build_runner使用了0.8.3版本的依賴浦夷。
再回到pubspec.yaml文件辖试,將any版本號替換成實際版本。
dev_dependencies:? build_runner:0.8.3
這樣就可以完美解決版本依賴問題啦~
Q&A:
為什么不直接使用any作為版本號呢
在實際項目開發(fā)中劈狐,擁有不確定性的版本號會成為未來應用崩潰的一個極大的隱患罐孝。這可能將會使您的應用難以調(diào)試。所以請記住肥缔,不要在你的項目中留下any關鍵字莲兢!
出自:http://www.reibang.com/p/3af57fbb7efe