首页 > 解决方案 > 如何在 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.

如何避免这个错误?

标签: c#unity3dxamarin.ios

解决方案


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


推荐阅读