侧边栏壁纸
博主头像
钱学超博主等级

火星人,1万小时法则的忠实拥趸。技术宅,象棋和羽毛球爱好者,马拉松PB成绩:4小时零8分。坚持认为算法是计算机的灵魂。喜欢解决问题,喜欢手工,喜欢与朋友们聊天喝酒吹牛X。

  • 累计撰写 54 篇文章
  • 累计创建 306 个标签
  • 累计收到 52 条评论
标签搜索

目 录CONTENT

文章目录

Flutter 遇到警告【Depend on referenced packages. 】怎么处理

钱学超
2022-06-06 / 0 评论 / 0 点赞 / 81 阅读 / 848 字 / 正在检测是否收录...
  1. flutter开发,遇到引入package:collection/collection.dart时报警告,这虽然不致命,但是对于一个强迫症来说,简直是不能容忍的问题!原本以为像Java一样,collections工具类,应该是sdk自带的吧,但是查询得知这是一个第三方包:collection.dart

  2. 警告本身的意思是,依赖了被引用的包。所以,我们可以找一下被引用的地方是哪里:

    	flutter pub deps
    

    找到了这个包的引用位置:
    image

  3. 所以下面的操作就看你自己了:知其然知其所以然,可以在文件中增加一个注释,忽略这个警告。
    image-1654524790877

    // ignore_for_file: depend_on_referenced_packages
    

    注意:一旦你决定这么做了,那么这个文件中,所有引用了第三方包引用的其他包时,都不会再报这个警告了。带来的后果就是,如果你引用的第三方包发生了变化,很可能会导致你的现有功能不能正常工作。
    比如,上面的图中,如果我修改了:build_runner 2.1.11(假如)的版本号,而新的版本号对应的版本中去掉了collection引用,那么,就该出问题了。明明没有对这个文件进行任何操作,而这个文件却工作不正常了。
    对于目前flutter插件稳定性不高,版本兼容性不好的基本情况来说,这个问题会是经常出现的。

  4. 所以,这样解决问题并不好。

  5. 那么应该怎样解决这个问题嗫,我们来探讨一下。

  6. flutter引用包是不能像伟大的Gradle一样,拥有编程思维,可以优雅的排除包中的子包。但是,我们可以明确的了解每一个引用的具体版本号。
    image-1654525161133
    找到这个文件,搜索 collection:
    image-1654525197167
    于是我们知道了,build_runner引用的子包的子包,引用collection时,用的是1.16.0版本。

  7. 所以嗫,我们可以重复引用这个包,明确指出,我就是要用这个包!

  8. 在pubspec.yaml中明确添加collection包的引用:
    image-1654525317722

  9. 再去查看引用了collection的文件,一切归于宁静。
    image-1654525377184

    所以各位,遇到问题不要慌!打开手机,发个朋友圈!

0

评论区