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

Flutter构建失败:sms_autofill库非const构造器调用错误

解决sms_autofill-2.2.0的const构造器错误

问题分析

这个错误是因为sms_autofill-2.2.0库的代码和你当前使用的Flutter SDK版本不兼容——SDK对const表达式的检查规则更严格,而库的第73行在需要const的位置调用了非const构造器,导致Gradle编译失败。

可行解决方案

方案1:升级sms_autofill到最新稳定版

打开项目的pubspec.yaml文件,把sms_autofill的版本号替换成当前最新版(可以去pub.dev查最新号),比如:

dependencies:
  sms_autofill: ^2.3.0 # 替换为实际最新版本号

然后执行命令更新依赖:

flutter pub get

新版本基本都会修复这类语法兼容问题,这是最稳妥的解决方式。

方案2:手动修改库文件(临时应急)

如果暂时没法升级库,可以直接修改本地缓存的库代码:

  1. 找到路径:flutter/.pub-cache/hosted/pub.dartlang.org/sms_autofill-2.2.0/lib/sms_autofill.dart
  2. 定位到第73行,要么去掉外层的const关键字,要么给内部的构造器加上const(如果该构造器支持const)
    比如原代码如果是:
const SomeWidget(NonConstConstructor())

改成:

SomeWidget(NonConstConstructor()) // 去掉外层const

或者构造器支持的话改成:

const SomeWidget(const NonConstConstructor())

修改完后执行flutter clean再重新编译。

方案3:降级Flutter SDK版本

如果必须用这个旧版库,可以降级到和它兼容的Flutter版本,比如Flutter 2.8.x系列:

flutter downgrade 2.8.1

注意事项

  • 手动改库文件是临时方案,下次执行flutter pub get会覆盖修改,优先选升级库版本。
  • 升级/降级SDK前最好备份项目,避免出现其他依赖冲突。

内容的提问来源于stack exchange,提问作者Roy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 22:27:19