c# - Newtonsoft.Json 可在 Unity 编辑器中使用,但不适用于移动设备
问题描述
我正在 Unity 中按类别编写问答游戏。类别是通过返回 JSON 文本的 PHP 脚本获得的,* 当我在 UnityEditor 中使用此解决方案时,它可以正常工作,但是当我在移动设备上安装 .apk 时,反序列化不起作用*。
与 mysql 数据库和 PHP 脚本的连接工作正常,因为在我登录之前它工作正常
string json = [
{ "id_cat":"1",
"nombre_cat":"DAM",
"id_cat_padre":"0"
},
{ "id_cat":"4",
"nombre_cat":"ASIR",
"id_cat_padre":"0"
},
{ "id_cat":"5",
"nombre_cat":"DAW",
"id_cat_padre":"0"
}
]
然后我将此字符串转换为类别列表
lsSubCategorias = JsonConvert.DeserializeObject<List<Categoria>>(json, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
我已经在代码中添加了痕迹,它就在它停止的那一行。
我使用 NuGet 安装了 Newtonsoft.Json,它出现在参考资料中。
我也只处理了一个类别对象而不是列表,但它也不起作用。这不是一个可视化问题,因为我已经创建了类别对象并使用它们创建了按钮。
问题是它在 Unity 编辑器中工作,但在我的 android 设备上不起作用
我的手机出现以下错误:
类型错误:System.PlatformNotSupportedException ToString 错误():Error.ToString()
解决方案
我使用 NuGet 安装了 Newtonsoft.Json,它出现在参考资料中。
Unity3d il2cpp 目标(如移动设备)不支持来自 NuGet 的 Newtonsoft.Json。使用资产商店中的 Newtonsoft.Json fork,就像这个。
推荐阅读
- python - 如何正确设置 Flask + pypugjs + sass?
- angular - 如何在前端显示角度 2 中的方法的结果
- javascript - 角度禁用按钮和垫输入错误消息
- c# - 是否可以查询一个表中引用了 sqlite 中其他表的所有列?
- firebase - 关于在 Firebase 中存储数据的方法的建议
- java - 完成异步操作后从函数返回
- c# - dll 中的方法抛出 System.MissingMethodException:找不到方法
- objective-c - macOS kexts 能否将代码注入特定进程(如 mach_inject 那样)?
- php - 找不到类“NotificationChannels\Hubtel\HubtelMessage” laravel
- perl - 使用 perl Text::CSV_XS 修复 CSV 中的换行符