前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flutter依赖库填坑

Flutter依赖库填坑

作者头像
睡觉谁叫
发布2022-12-22 08:49:04
6640
发布2022-12-22 08:49:04
举报
文章被收录于专栏:Flutter性能监控Flutter性能监控

场景再现

Flutter宿主需要特定的三方库版本

  1. Android宿主工程中需要存在低版本三方jar库(jar_v1)。
  2. 宿主工程中依赖Flutter plugin工程,该plugin中依赖了三方库pub_dev_lib1,此lib1--->android--->build.gradle中依赖三方jar库(jar_v2)版本。
  3. 宿主工程中不允许jar库的升级,只能使用jar_v1版本。 解决方法:可以指定找一个低版本的pub_dev_lib1 保证其中只依赖低版本的jar_v1

dart-lang中自带三方库升级导致编译问题

  1. Flutter工程中用到了build_runner,本地dart-lang版本是2.17.6。
  2. 编译工程时候出现了Analyzer5.3.0 Crash异常
image.png
image.png

分析原因:dart-lang 在build_runner之前默认会做代码检测任务(依赖analyzer),analyzer在这个时候升级到高版本导致,解决办法:

  1. 升级本地flutter sdk
  2. 强制指定一个固定旧的analyzer版本

问题解决

工程pubspec.yaml文件中使用dependency_overrides指定固定版本,比如上述问题2可以如下处理

代码语言:javascript
复制
dependency_overrides:
  analyzer: 5.2.0

一点想法

默认Flutter使用三方库时候,我们都会这样写,带上^ 如下:

代码语言:javascript
复制
analyzer: ^5.2.0

但是在很多时候,本地工程的flutter sdk版本,宿主版本中的jar包注定Flutter中三方库版本只能苟在一个低版本,无法更新,一更新就出错。说到底涉及到的是项目稳定性问题。 如何保证项目稳定性呢?

针对三方库的处理这块我认为可以这么做

  1. 三方库的引入应该保持节制态度,能实现自己实现。 原因是因为它不可控,你永远不知道它哪天会更新啥导致你项目出问题。
  2. 如果要用,就copy代码到项目里。 握在手里的东西才更放心,至少可以掌控住,出问题还有机会改。
  3. 如果代码太多或者没有源码,那么就评估大小且固定版本吧,这样会少很多麻烦。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 场景再现
    • Flutter宿主需要特定的三方库版本
      • dart-lang中自带三方库升级导致编译问题
      • 问题解决
      • 一点想法
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档