ExecutionEngineException: String conversion error: Illegal byte sequence encounted in the input.

我是在Unity 2019.4.10中调用.dll文件中的函数传递string参数时出现的这个错误。

ExecutionEngineException: String conversion error: Illegal byte sequence encounted in the input.

引擎执行异常:字符串转换错误:在输入中遇到非法的字节序列。

在网上搜索到了两种解决方式如下:

解决方案一:

删除项目中的 .js 脚本。

原因:Unity 2017.2测试版的Create Assets菜单下已经不再包含Javascript(即UnityScript)选项,建议使用C#脚本重新实现逻辑。

解决方案二:

将计算机名称、应用程序的名称、脚本路径修改为单字节字符(英文)。

原因:有些编码不支持双字节字符

但是这两种方式没有解决我的问题,于是经过我半天的摸索,找到了问题的原因:

dll文件源代码和Unity使用的.NetFramework版本不一致。
Unity 2019.4.10默认使用的.Net 4,所以我使用Unity 2018.2.1进行了测试,如下图,切换回.Net 3.5 Equivalent 就没有问题了。
unityConfig

至于Unity 2019.4.10,官方文档显示如下图:.Net 3.5已弃用。
可以考虑修改dll文件源代码的.NetFramework版本。
unityAPI

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值