Xamarin.iOS集成Branch.io打开链接时遇Value cannot be null错误求助
解决Branch.io Xamarin.iOS唤起时的"Value cannot be null"错误
从你的错误栈来看,问题核心是Branch SDK在将链接数据反序列化为BranchUniversalObject时,传入了null值给Newtonsoft.Json的反序列化方法。下面是几个针对性的解决方案,按优先级排序:
1. 先检查Branch控制台的链接配置
首先排除链接本身的问题:
- 登录Branch控制台,找到你测试用的链接,进入Data标签页,确认所有必填的元数据字段(比如
$canonical_identifier、$canonical_url)都已设置,没有空值的情况。 - 尝试创建一个极简的测试链接(只填核心必填项),再测试唤起APP,看是否还会报错。如果极简链接正常,说明原链接的自定义元数据里有异常值。
2. 升级Branch Xamarin SDK到最新版
旧版本的Branch Xamarin SDK存在null值处理的bug,尤其是在解析Universal Link返回的数据时:
- 打开NuGet包管理器,找到
BranchXamarinSDK,更新到最新的稳定版本。新版本通常会修复这类序列化时的null安全问题。
3. 添加null保护逻辑
虽然你严格遵循官方文档实现,但可以给Session回调和Json序列化添加一层防护:
给InitSessionComplete加前置检查
public void InitSessionComplete(BranchUniversalObject buo, BranchLinkProperties blp) { // 先过滤null情况,避免后续空引用 if (buo == null || buo.metadata == null || buo.metadata.Metadata == null) { Console.WriteLine("Branch: Received null UniversalObject or metadata, skipping deep link handling"); return; } // 原有的业务逻辑... NSObject[] keys = { NSObject.FromObject("+is_first_session") }; NSObject[] values = { NSObject.FromObject(0) }; if (buo.metadata.Metadata.ContainsKey("+is_first_session")) { values[0] = NSObject.FromObject(buo.metadata.Metadata["+is_first_session"]); } NSDictionary nsData = NSDictionary.FromObjectsAndKeys(values, keys); NSNotificationCenter.DefaultCenter.PostNotificationName(Branch_notification, null, nsData); }
全局配置Json序列化忽略null值
在FinishedLaunching方法初始化Branch之前,添加全局Json设置:
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) { // 添加这行代码,让Json序列化忽略null值 Newtonsoft.Json.JsonConvert.DefaultSettings = () => new Newtonsoft.Json.JsonSerializerSettings { NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore }; // 原Branch初始化逻辑... BranchIOS.Debug = true; BranchIOS.Init(Branch_key, launchOptions, this); return true; }
4. 检查Newtonsoft.Json版本兼容性
Branch SDK对Newtonsoft.Json有版本依赖:
- 查看
BranchXamarinSDK的NuGet依赖信息,确保你的项目使用的Newtonsoft.Json版本和SDK要求的版本匹配(比如SDK要求12.x,不要混用13.x或更低版本)。如果版本不兼容,可能会导致序列化逻辑异常。
内容的提问来源于stack exchange,提问作者H_H
相关产品推荐
相关产品推荐

