You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter升级后出现已停止维护的js包相关报错问题

Flutter升级后出现已停止维护的js包相关报错问题

嘿,我来帮你捋捋这个问题!你已经把Flutter更到最新版,也用flutter pub upgrade --major-versions更新了依赖,而且自己完全没在pubspec.yaml里直接加过js包,但还是在依赖列表里看到了标着「discontinued」的js: ^0.6.7,调试时还蹦出了JSArray<JSObject>相关的报错,这种情况我之前也碰到过!

其实问题出在间接依赖上——你项目里某个其他依赖包(比如你报错里提到的web-1.1.1)内部依赖了旧版本的js包,所以哪怕你没直接引入,它也会被自动拉取到你的项目里。给你几个实用的解决步骤:

  • 先揪出“幕后黑手”:在项目根目录运行命令 flutter pub deps --tree js,这个命令会把所有依赖js包的依赖链打印得明明白白,你一眼就能看到是哪个包在偷偷用旧版js。
  • 升级关联依赖:找到那个依赖包后,去看看它的最新版本有没有更新对js包的依赖(比如换成了兼容新版js的版本),如果有,直接把这个包升级到最新版就行。
  • 强制覆盖版本:要是那个依赖包还没更新,你可以在pubspec.yaml里用dependency_overrides强制指定js包的版本,写法如下:
dependency_overrides:
  js: ^0.7.2

这样就能让所有依赖js的地方都用这个最后稳定版,避开停止维护的旧版本。

  • 最后收尾:做完上面的操作后,记得跑一遍flutter pub get重新拉取依赖,再用flutter clean清下缓存,然后重新编译项目试试。

对了,js:0.7.2是这个包停止维护前的最后一个稳定版本,功能上和旧版本是兼容的,所以强制覆盖一般不会有问题;要是之后碰到兼容bug,直接去那个依赖包的仓库提issue催更就行。

备注:内容来源于stack exchange,提问作者Yashraj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 17:13:03