旧Flutter应用升级3.10.2后构建失败,求助解决权限及编译问题
问题解决:Flutter 3.10.2构建失败(package_info_plus_windows兼容问题)
错误原因
构建错误来自package_info_plus_windows:2.1.0,该版本的FFI Struct定义中使用了可空字段int? wLanguage和int? wCodePage,而Flutter 3.10.x升级了Dart FFI规则,禁止Struct/Union中的字段为可空类型,导致编译失败。这个包是你pubspec中某个依赖间接引入的(比如upgrader、rate_my_app这类需要获取应用信息的包)。
解决方案
1. 强制升级兼容的package_info_plus版本
在你的pubspec.yaml中添加依赖覆盖,指定支持Flutter 3.10的package_info_plus版本(建议用最新稳定版):
dependency_overrides: package_info_plus: ^4.0.0 package_info_plus_windows: ^4.0.0
注:如果4.0.0仍有问题,可尝试更高版本,比如
^4.2.0,确保版本兼容Flutter 3.10.x。
2. 清理并重新获取依赖
执行以下命令:
flutter clean flutter pub get
然后重启你的Android Studio,点击File > Invalidate Caches...清除IDE缓存,避免旧缓存干扰。
3. 升级其他老旧依赖
你的pubspec中部分依赖版本较旧,可能也存在Flutter 3.10兼容性问题:
- 将
upgrader升级到最新稳定版(比如^6.1.0) - 将
syncfusion_flutter_pdfviewer从beta版切换到稳定版(比如^25.1.35) - 其他依赖如
share_plus、path_provider也建议升级到最新兼容版本
4. iOS构建问题处理
iOS构建失败通常是pod依赖冲突导致,执行以下步骤:
cd ios pod deintegrate pod install cd .. flutter run
内容的提问来源于stack exchange,提问作者SameJall
相关产品推荐
相关产品推荐

