Unity导入Nethereum SDK出现Newtonsoft.Json相关编译错误如何解决?
错误根因
这个编译错误本质是你导入的Nethereum SDK依赖Newtonsoft.Json v12版本,Unity自带的Newtonsoft.Json版本与依赖版本不匹配,且你之前的操作没有解决Unity程序集引用优先级、版本校验的问题,所以不生效。
分步解决方案
- 首先清理冗余资源:删除所有你之前手动导入的Newtonsoft.Json相关包,包括资源商店导入的文件、VS单独添加的包引用、自定义的web.config配置,避免多版本冲突
- 安装匹配版本的Newtonsoft.Json:打开Unity顶部菜单栏
Window > Package Manager,搜索内置包Newtonsoft Json,点击版本选择下拉框找到12.0.x区间的版本(优先选12.0.3),点击安装覆盖现有版本 - 关闭版本校验:进入
Edit > Project Settings > Player > Other Settings,在Configuration分类下找到Assembly Version Validation选项,取消勾选,跳过Unity对程序集版本的强制校验 - 补全程序集引用:如果你项目里使用了自定义程序集定义文件(.asmdef),打开你脚本对应的asmdef文件,在References列表手动添加
Newtonsoft.Json引用,保存后等待编译 - 重新导入Nethereum:优先导入适配Unity的Nethereum.Unity版本,不要直接使用.NET通用版的Nethereum包
异常兜底处理
如果执行完以上步骤仍有报错,关闭Unity,删除项目根目录下的
Library、Temp文件夹后重启Unity,强制触发全量重新编译即可解决
内容的提问来源于stack exchange,提问作者730wavy
相关产品推荐
相关产品推荐

