如何在Unity中使用包含Xamarin.iOS的库?

时间:2019-01-21 08:40:43

标签: c# unity3d 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

如何避免此错误?

1 个答案:

答案 0 :(得分:0)

Unity的Mono运行时与Xamarin不兼容,因此使用您的库的唯一可能性是删除IOS部分。