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

Flutter iOS应用崩溃:google-mobile-ads指针缺失空性类型标注

Flutter iOS端因google-mobile-ads空性标注崩溃的解决办法

问题根源

崩溃来自google-mobile-ads插件的FLTAdUtil文件,原因是Objective-C代码中部分指针缺少空性类型标注,触发Xcode的空性检查报错,导致应用崩溃。Android端无此问题是因为平台类型检查机制不同。

具体解决步骤

1. 更新插件到最新稳定版

官方大概率已经修复了这类空性标注问题,优先尝试更新:

  • 打开项目根目录的pubspec.yaml,将google_mobile_ads的版本号改为最新稳定版
  • 执行命令:flutter pub upgrade
  • 重新编译iOS项目:flutter run ios

2. 手动修复空性标注(更新无效时用)

找到插件的FLTAdUtil.h文件(路径一般为ios/Pods/google-mobile-ads/Classes/FLTAdUtil.h),修改以下代码:

#import <Flutter/Flutter.h>
#import <Foundation/Foundation.h>
#import <WebKit/WebKit.h>

@interface FLTAdUtil : NSObject

// 给参数添加空性标注
+ (BOOL)isNull:(id _Nullable)object;

+ (BOOL)isNotNull:(id _Nullable)object;

+ (WKWebView *_Nullable)getWebView:(NSNumber *_Nonnull)webViewId
             flutterPluginRegistry:
                 (id<FlutterPluginRegistry> _Nonnull)flutterPluginRegistry;

// 给属性添加非空标注
@property(readonly, class) NSString *_Nonnull requestAgent;

@end

修改后保存,重新编译iOS项目即可。注意:下次执行pod install时修改会被覆盖,建议配合pod lock锁定插件版本,或者等待官方更新。

3. 关闭Xcode的空性完整性检查(临时规避)

如果不想修改插件代码,可通过关闭Xcode的严格检查来解决:

  • 用Xcode打开项目的ios/Runner.xcworkspace
  • 选中Runner Target,进入Build Settings
  • 搜索CLANG_WARN_NULLABILITY_COMPLETENESS,将其值改为NO
  • 或者在Other C Flags中添加-Wno-nullability-completeness
  • 重新编译项目

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 11:55:56