升级Dart SDK至3.1.2后,flutter_native_admob空安全问题致版本解析失败
解决Dart SDK 3.1.2与flutter_native_admob空安全依赖冲突问题
问题概述
升级Dart SDK到3.1.2版本后,执行依赖解析时触发报错:
Resolving dependencies... The current Dart SDK version is 3.1.2. Because Myapp depends on flutter_native_admob >=0.1.1+1 which doesn't support null safety, version solving failed. The lower bound of "sdk: '>=2.0.0-dev.68.0 <3.0.0'" must be 2.12.0 or higher to enable null safety. Process finished with exit code 1
核心原因是flutter_native_admob >=0.1.1+1未适配空安全,与Dart SDK 3.1.2的空安全强制要求不兼容,导致依赖版本解析失败。
可行解决方案
方案1:替换为官方支持空安全的广告包
flutter_native_admob已停止维护,推荐使用Google官方推出的google_mobile_ads包,该包完全支持空安全,且覆盖原生广告的全部核心功能。修改pubspec.yaml中的依赖配置:
dependencies: # 删除原flutter_native_admob依赖 # flutter_native_admob: ^0.1.1+1 google_mobile_ads: ^2.4.0 # 可根据pub.dev上的最新版本调整
替换后执行flutter pub get即可完成依赖更新。
方案2:临时启用混合空安全模式(不推荐长期使用)
若因业务需求暂时无法替换包,可尝试使用第三方维护的空安全分支版本,同时调整项目的SDK约束:
- 在
pubspec.yaml中添加依赖覆盖:
dependency_overrides: flutter_native_admob: git: url: https://github.com/bdlukaa/flutter_native_admob.git ref: nullsafety
- 更新项目的SDK环境约束:
environment: sdk: '>=2.12.0 <4.0.0'
执行flutter pub get完成依赖解析,但此方案存在稳定性风险,建议尽快迁移到官方包。
内容的提问来源于stack exchange,提问作者soul upgrader
相关产品推荐
相关产品推荐

