升级Flutter SDK至3.10.1后无法构建项目求助
解决Flutter 3.10.1调试模式下
wCodePage可空字段错误 问题原因
Flutter 3.10.x对应Dart 3.0+版本,对FFI结构体字段的可空性规则做了严格限制:结构体中的字段不能声明为可空类型(如int?),必须是int、double、Pointer或Struct/Union的子类型。你遇到的错误来自某个依赖包中的file_version_info.dart文件,其中wCodePage字段使用了int?,不符合新版本的规则。
解决步骤
- 定位问题依赖:在项目中搜索包含
file_version_info.dart的第三方包,通常是直接或间接依赖的file_version_info类工具包。 - 升级依赖包:查看该包的最新版本,若已有适配Dart 3.0/Flutter 3.10+的版本,直接在
pubspec.yaml中更新版本号,执行flutter pub get即可。 - 临时修复(若依赖未更新):
- 找到本地缓存中该依赖的
file_version_info.dart文件(路径一般为C:\Users\<你的用户名>\.pub-cache\hosted\pub.dartlang.org\<依赖包名>\lib\src\file_version_info.dart) - 将代码中的
external int? wCodePage;修改为external int wCodePage; - 执行
flutter clean和flutter pub get后重新运行项目
- 找到本地缓存中该依赖的
- 替换依赖:若该包长期未维护,寻找功能类似且适配最新Flutter版本的替代包。
内容的提问来源于stack exchange,提问作者jdevp2
相关产品推荐
相关产品推荐

