DllNotFoundException:agoraSdkCWrapper 在 macOS 上的 Unity 中使用 Agora

Posted

技术标签:

【中文标题】DllNotFoundException:agoraSdkCWrapper 在 macOS 上的 Unity 中使用 Agora【英文标题】:DllNotFoundException: agoraSdkCWrapper with Agora in Unity on macOS 【发布时间】:2021-10-27 09:22:55 【问题描述】:

我的带有 Agora Video SDK 的 Unity 项目突然停止在 macOS 上运行,但出现异常 DllNotFoundException: agoraSdkCWrapper

DllNotFoundException: agoraSdkCWrapper
agora_gaming_rtc.IRtcEngine.InitEngineCallback () (at Assets/AgoraEngine/Scripts/AgoraGamingSDK/AgoraGamingRtcEngine.cs:5820)
agora_gaming_rtc.IRtcEngine..ctor (System.String appId) (at Assets/AgoraEngine/Scripts/AgoraGamingSDK/AgoraGamingRtcEngine.cs:212)
agora_gaming_rtc.IRtcEngine.GetEngine (System.String appId) (at Assets/AgoraEngine/Scripts/AgoraGamingSDK/AgoraGamingRtcEngine.cs:4025)

错误似乎与系统有关。它出现在我系统上的所有项目中。

我已经重新启动了计算机,重新克隆了项目,安装了不同版本的 Unity,仔细检查了 agoraSdkCWrapper.bundle 是否包含在编辑器中并且是独立的,并且 CPU 设置为 Intel 64 位(将其设置为 Any CPU 也没有帮助)。

Agora 在问题出现之前构建的版本中运行良好。

最简单的重现是:使用“3D”模板创建一个新的 Unity 项目,从资源商店添加 Agora Video SDK for Unity,运行演示场景并单击加入。

2019 年 16 英寸 Macbook Pro 上的 MacOs 11.6,配备 Intel、Unity 2020.3.11f1 和 Unity 2020.3.21f1、Agora 3.4 和 3.5

【问题讨论】:

【参考方案1】:

同样的问题: 对于我当前的项目和从统一资产商店导入最新 sdk 的新创建项目(v. 3.5.0.70 - 2021 年 10 月 21 日发布),但无论如何重新导入库,这些错误仍然出现:

DllNotFoundException: agoraSdkCWrapper agora_gaming_rtc.IRtcEngine.InitEngineCallback () (在 Assets/AgoraEngine/Scripts/AgoraGamingSDK/AgoraGamingRtcEngine.cs:5820) agora_gaming_rtc.IRtcEngine..ctor (System.String appId) (在 Assets/AgoraEngine/Scripts/AgoraGamingSDK/AgoraGamingRtcEngine.cs:212) agora_gaming_rtc.IRtcEngine.GetEngine (System.String appId) (在 Assets/AgoraEngine/Scripts/AgoraGamingSDK/AgoraGamingRtcEngine.cs:4025)

注意:Mac OS 似乎将此插件视为恶意软件,因此无法打开文件 agoraCSdkWrapper.bundle!

Security Notice on Mac when re-import the plugin

Mac BigSur 11.6、MacBook Pro 15 英寸、2018 年、Unity 2020.3.14f1

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。 我在另一台计算机上尝试过,macOS 10.15.7 Catalina。在加载库的那一刻,会弹出一个警告:“agoraSdkCWrapper.bundle”会损坏您的计算机。你应该把它移到垃圾箱。此文件是在未知日期下载的。 根据我对此类问题的经验:从 Unity Project 中删除旧的 agoraSdkCWrapper.bundle,从 agora 网站重新下载插件,解压缩文件,将 agoraSdkCWrapper.bundle 复制到插件中的 MacOS 文件夹(使用MacOS finder,未打开 Unity Editor),然后重新打开 unity Editor。从新的 lib 文件重新导入脚本后,Unity 会注销一些警告,没关系,按运行,不会出现此错误。希望对您有所帮助!【参考方案2】:

这是来自 Agora 开发者关系的 Rick。实际上,我们在您下载时遇到了 Mac 签名证书问题。很抱歉无法联系到所有受影响的人。它现在应该已在 Asset Store 上修复(修改日期为 10 月 27 日)。如果您想回顾一下,它正在this thread in our Slack community 中讨论。

【讨论】:

这解决了问题,谢谢! 嗨瑞克感谢您的回复。我使用 Mac M1。 Agora voice sdk 在 Unity Editor 中运行良好,但在我为 macOS 构建并运行项目后出现了同样的错误。我按照您的建议从 Asset Store 下载了最新的 sdk(版本 3.5.0.70,修改日期 2021 年 10 月 28 日)。但是,错误仍然存​​在。我也尝试从 Agora 网站下载 video sdk 文件夹并将 agoraSdkCWrapper.bundle 拖到 AgoraEngine 内插件文件夹中的 macOS 文件夹中,但这样系统提示它可能是恶意软件。我想知道我能做些什么来解决这个问题。 希希,很抱歉迟到了。这是 Unity Editor 2020.3 及更高版本上发生的常见错误。请确保根据您的 CPU 在插件上选择平台设置。如果您的构建设置是 Intel+Apple,建议使用 AnyCPU。 Xi - 如果你想知道,这个截图告诉你在哪里可以找到这个设置:user-images.githubusercontent.com/1261195/…

以上是关于DllNotFoundException:agoraSdkCWrapper 在 macOS 上的 Unity 中使用 Agora的主要内容,如果未能解决你的问题,请参考以下文章

错误:“无法找到 UnityARCore”和“DllNotFoundException”

DllNotFoundException: libzmq

C++ DLL 和 C# 应用程序 WPF:System.DllNotFoundException

DllNotFoundException: libgfxunity3d

Windows Vista:无法加载 DLL“x.dll”:对内存位置的访问无效。 (DllNotFoundException)

System.DllNotFoundException:“libcef.dll is not found.”