我通过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
。
如何避免此错误?
答案 0 :(得分:0)
Unity的Mono运行时与Xamarin不兼容,因此使用您的库的唯一可能性是删除IOS部分。