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

Flutter页面跳转后dispose调用报空指针问题咨询

解决调用null对象dispose方法的问题

错误的核心原因是:_bannerAd可能还未完成初始化(比如广告未加载就跳转页面),此时直接调用_bannerAd.dispose()就会触发null对象方法调用错误。

修改dispose方法,通过空安全判断避免调用null对象的方法:

@override
void dispose() {
  // 仅当_bannerAd不为null时,才执行dispose操作
  _bannerAd?.dispose();
  super.dispose();
}

这里用到的?.是Dart的空安全操作符,它会先判断左侧对象是否非空,只有非空时才会执行右侧的方法,从根源上避免null错误。

另外补充一个页面跳转的优化建议:如果你的需求是刷新整个应用,建议使用完整的pushAndRemoveUntil写法,确保清除之前的路由栈,让旧页面能正常触发dispose:

Navigator.pushAndRemoveUntil(
  context,
  MaterialPageRoute(builder: (context) => SplashPage()),
  (Route<dynamic> route) => false,
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 11:06:18