Flutter | 如何优雅的解决依赖版本冲突

前言

Google推出flutter这样一个新的高性能跨平台(Android,ios)快速开发框架以后,被业界许多开发者所关注。我在接触了flutter以后发现这个确实是一个好东西,好东西固然要和你们分享,对吧。ios

今天要跟你们分享的是如何解决flutter中依赖版本冲突。bash

这篇文章最初出如今:Iiro的博客中。框架

为何会存在版本依赖问题

咱们在开发flutter项目中,经常会依赖第三方库。flutter依赖项越多,就越有可能出现依赖版本冲突。性能

Because new_trend depends on build_runner >=0.9.0 which requires SDK version >=2.0.0-dev.61 <3.0.0, version solving failed.
pub get failed (1)
复制代码

它的pubspec.yaml文件应该看上去是这样的ui

dev_dependencies:
  build_runner: ^0.9.0
复制代码

咱们能够经过报错信息清楚地看到,这是因为build_runner和SDK版本冲突所致使的。spa

解决方法

当咱们不清楚当前到底应该使用依赖的哪个版本时,咱们可使用any来解决版本依赖版本冲突的问题。调试

dev_dependencies:
  build_runner: any
复制代码

any会自动调用pub的版本分析器,寻找合适的可以避免冲突的依赖版本并下载。咱们将不会再看到pub抱怨版本依赖版本冲突啦!code

还没完!

咱们知道咱们不该该把any留在这,因此咱们须要将正确的依赖版本把any关键字替换掉!cdn

使用pubspec.lock找到正确的版本

咱们打开pubspec.lock,这是根据当前项目依赖所生成的文件,记录了当前使用的依赖版本。blog

咱们能够在这里找到版本分析器为咱们找到的无冲突的依赖版本号,这里能够看到build_runner使用了0.8.3版本的依赖。

再回到pubspec.yaml文件,将any版本号替换成实际版本。

dev_dependencies:
  build_runner: 0.8.3
复制代码

这样就能够完美解决版本依赖问题啦~

Q&A:

为何不直接使用any做为版本号呢

在实际项目开发中,拥有不肯定性的版本号会成为将来应用崩溃的一个极大的隐患。这可能将会使您的应用难以调试。因此请记住,不要在你的项目中留下any关键字!

写在最后

若是各位还在flutter项目中遇到了其余关于版本依赖问题,欢迎在下方评论区留言或者给我发送邮件 1652219550a@gmail.com 我会很乐意解答您的问题!

相关文章
相关标签/搜索