Unity导入第三方源码遇Newtonsoft Json冲突问题求助
解决Unity中Newtonsoft.Json.dll重复编译冲突问题
简便解决方案:统一用Unity官方包管理Newtonsoft.Json
这是最省心的处理方式,直接替换项目里零散的dll,用Unity官方维护的包来统一管理:
- 打开Unity编辑器顶部菜单栏的
Window > Package Manager - 在Package Manager窗口中,点击左上角加号选择
Add package by name,输入com.unity.nuget.newtonsoft-json后添加;也可以直接在搜索栏搜这个包名安装 - 安装完成后,删除项目中AOT、Standalone、Windows文件夹下的
Newtonsoft.Json.dll文件
之后Unity会统一使用包管理的版本,自动适配不同平台的兼容性,不再出现重复dll的编译错误。
备选方案:调整现有dll的平台加载规则
如果不想替换现有dll,可以通过设置每个dll的平台兼容性,让Unity编译对应平台时只加载一个版本:
- 选中AOT文件夹下的
Newtonsoft.Json.dll,在Inspector面板的Platform Settings区域,只勾选iOS、Android这类需要AOT编译的平台,取消其他平台勾选 - 同理,给Standalone文件夹下的dll只勾选Standalone平台,Windows文件夹下的dll只勾选Windows平台
这样每个平台编译时只会加载对应文件夹的dll,避免冲突。
如何下载并编辑Runtime/AOT文件夹的包内容
如果必须修改包自带的Runtime/AOT文件夹内容,可以把包转为本地包:
- 打开Package Manager,找到已安装的
com.unity.nuget.newtonsoft-json包 - 点击包右侧的齿轮图标,选择
Show in Explorer(Windows)或Show in Finder(Mac),打开包的本地缓存目录 - 把整个包文件夹复制到项目根目录的
Packages文件夹下
此时这个包就变成了项目本地包,你可以直接编辑其中的Runtime/AOT文件夹内容。注意:转为本地包后,Unity不会再自动更新这个包的版本,后续需要手动维护。
内容的提问来源于stack exchange,提问作者user30593530
相关产品推荐
相关产品推荐

