c# - 如何在 Unity 中使用包含 Xamarin.iOS 的库?
问题描述
我通过 Visual Studio 2017 创建了包含 Xamarin.iOS 的 dll。
using JavaScriptCore;
using Foundation;
namespace JSCore
{
public static class MyClass
{
public static int Test()
{
JSContext jsContext = new JSContext();
jsContext[new NSString("arg1")] = JSValue.From(2, jsContext);
jsContext[new NSString("arg2")] = JSValue.From(2, jsContext);
var jsResult = jsContext.EvaluateScript("arg1 + arg2;");
return jsResult.ToInt32();
}
}
}
我想在 Unity 中使用这个库。
我将此 dll 放在 Unity Plugins 文件夹中并编写脚本(调用MyClass.Test()
)。
在编辑器中,没有错误。但是当我构建项目时,出现了一些错误。
IL2CPP error for method 'System.Void ObjCRuntime.Runtime::set_UseAutoreleasePoolInThreadPool(System.Boolean)' in assembly '/Users/[MyName]/Documents/JavaScriptRuntimeTest/Temp/StagingArea/Data/Managed/Xamarin.iOS.dll'
Additional information: Build a development build for more information. Object reference not set to an instance of an object.
我读了错误的句子。我认为这是关于System.dll
.
Xamarin.iOS 参考System.dll 2.0.5.0
。
Unity 的 API 兼容级别为.NET Standard 2.0
.
如何避免这个错误?
解决方案
Unity 的 Mono 运行时与 Xamarin 不兼容,因此使用您的库的唯一可能性是删除 IOS 部分。
推荐阅读
- wordpress - 成功付款后Woocommerce订单失败问题
- r - 如何叠加多个图
- java - toArray() 函数如何确保 long 类型的列表不能转换为 Integer 的数组
- error-handling - 在给定选项和默认选项中都没有指定有效的“发件人”地址
- tensorflow - Tensorflow 超参数调整 - 未输出每个试验的指标
- c# - “转到实现”以“符号没有实现”结尾
- javascript - 数据表 - 从页脚计算中省略某些行
- python-3.x - 通过机器人打开或通过 python 代码中的任何其他方法请求时,网页不会加载
- algorithm - Sqrt(n) 时间复杂度
- javascript - 获取嵌套值的平均值 - 在发布时预先计算并存储为字段或使用聚合函数来过滤和计算它们?