iOS构建启动时触发UIApplication.Main参数空引用异常求助
iOS构建启动时System.ArgumentNullException异常排查方案
启动iOS构建时抛出System.ArgumentNullException异常,提示值不能为 null,参数名: input,触发代码如下:
static void Main(string[] args) { // if you want to use a different Application Delegate class from "AppDelegate" // you can specify it here. UIApplication.Main(args, null, typeof(AppDelegate)); }
已排查AppDelegate中Firebase推送通知、Xamarin.Essentials相关代码,问题仍未解决,可尝试以下排查方向:
- 提前对
args参数做判空处理:虽然Main方法默认args不会为null,但iOS构建环境可能存在特殊场景,可添加代码确保参数非空:static void Main(string[] args) { args ??= Array.Empty<string>(); UIApplication.Main(args, null, typeof(AppDelegate)); } - 检查项目启动参数配置:右键iOS项目→属性→iOS构建→额外参数,确认是否存在异常的空参数配置
- 排查AppDelegate的初始化逻辑:检查
AppDelegate的构造函数、静态成员初始化代码,是否在UIApplication.Main调用前就触发了空引用操作,比如依赖的服务未完成初始化就被调用 - 清理重建项目:删除项目的bin、obj目录,清理NuGet缓存后重新还原依赖,再执行构建
- 验证SDK版本兼容性:确认Xamarin.iOS版本与Firebase、Xamarin.Essentials的版本匹配,避免因版本冲突导致的初始化异常
内容的提问来源于stack exchange,提问作者Wali
相关产品推荐
相关产品推荐

