Unity3d - 无法加载“资产/插件/QCARWrapper.dll”

Posted

技术标签:

【中文标题】Unity3d - 无法加载“资产/插件/QCARWrapper.dll”【英文标题】:Unity3d - Failed to load 'Assets/Plugins/QCARWrapper.dll' 【发布时间】:2015-05-08 08:40:55 【问题描述】:

我想在 unity android 应用程序上使用 c++ dll。要在 android 设备上使用本机 dll,我知道我应该使用 Unity 5。我从 here 下载了 unity5。我的应用程序需要 vuforia。所以我从here下载了vuforia包。

Unity 5 是 64 位的。

在统一编辑器上,我删除 MainCamera 并添加 ARCamera。统一控制台上有一条错误消息。消息如下:

Failed to load 'Assets/Plugins/QCARWrapper.dll', expected 64 bit architecture (IMAGE_FILE_MACHINE_AMD64), but was IMAGE_FILE_MACHINE_I386.
Vuforia.WebCamAbstractBehaviour:CheckNativePluginSupport()

vuforia forum 上有此问题的解决方案。但是我没有找到unity editor(32 bit)

【问题讨论】:

【参考方案1】:

要将 Vuforia 与 Unity 64 位一起使用,只需将 QCARWrapper DLL 从 /Plugins 移动到 /Plugins/x86。这些是 DLL:

QCARWrapper.exp QCARWrapper.lib QCARWrapper.dll QCARWrapper.dll.signature

这应该可以解决问题!

【讨论】:

vuforia 5.5 包含 VuforiaWrapper.dll 而不是 QCARWrappper,按照建议将此及其相关文件移动到 x86 文件夹中)并且不要忘记重新启动 unity。【参考方案2】:

转到https://unity3d.com/get-unity/update 在此下方,您将看到其他下载在此下方您将看到FOR WINDOWS。单击它并选择 Unity 编辑器(32 位)

编辑: 我看到很多 dowvotes。当被问到这个问题时,这唯一解决方案。 Unity 5 64bit 刚刚发布,当时WAS 被问及这是当时ONLY 的解决方案。此答案已更改为 5 个月Vuforia 发布其插件的 64 位 版本时提供的当前答案。

【讨论】:

你告诉他安装 Unity 32bit 和他现有的 Unity 64 位版本来解决这个问题? 老兄,在得出结论之前先阅读他的问题和我的回答。他有一个插件问题,他找到了解决方案。解决方案是安装 32 位 Unity 版本,但他在 Unity 网站上找不到 32 位版本。我的回答提供了如何在 Unity 网站上找到它的步骤。 仍然 TODAY 发布 Unity 5+,您的回答确实值得一票否决,这样人们就不会认为它是好的回答他们应该遵循。 @Dimitris 您要么天真,要么缺乏理解力,或者可能两者兼而有之。您认为应该否决作为唯一可用解决方案并解决了当时 OP 问题的答案?有常识的人会查看我的答案中的日期,然后再查看其他答案中的日期,然后意识到周围没有任何其他答案。此外,对于那些不想将 Vuforia 插件更新到 64 位版本的人来说,这个答案仍然很有用。 SO上有很多过时的答案,但在开始时很有帮助。他们也应该被否决吗? 他需要 Unity 32 位版本,但找不到,所以我提供了如何找到它的链接和说明。【参考方案3】:

Vuforia 5.0Windows 上支持 32 位 版本的 Unity 编辑器,以及 64 位 版本 在 Mac 上

所以,有两种可能的解决方案:

    您只需在 Windows 上安装和使用 Unity 5 32 位编辑器。

    “x86”里面新建一个文件夹

    资产>>插件

    在您的统一项目结构中 然后将以下文件从 "Plugins" 移动到新创建的 "x86" 文件夹中。

    QCARWrapper.lib QCARWrapper.dll QCARWrapper.dll.signature QCARWrapper.exp

在检查日志消息之后,如果您看到如下日志:

Setting platform to 'Editor' for plugin: Assets/Plugins/x86/VuforiaWrapper.dll
UnityEngine.Debug:Log(Object)
Vuforia.EditorClasses.ExtensionImport:UpdatePluginSettings() (at Assets/Vuforia/Editor/Scripts/ExtensionImport.cs:43)
UnityEditor.EditorApplication:Internal_CallUpdateFunctions()

那么,恭喜!!你准备好了!

【讨论】:

【参考方案4】:

我遇到了同样的问题/Failed to load 'Assets/Plugins/QCARWrapper.dll'/ with vuforia plugin and the latest version of Unity(目前为 5.1.2f 64bits),也无法让我的笔记本电脑摄像头工作。

Unity 的 32 位版本修复了所有问题,即使我的操作系统是 64 位(Windows 7)。

【讨论】:

【参考方案5】:

如果您使用 Unity 5.1,请确保在 Android 和 ios 的播放器设置中设置正确的图形 API 设置:

禁用“自动图形 API”复选框 在 Graphics APIs 列表中,确保仅包含 OpenGL ES 2.0: Android:删除 OpenGL ES 3.0 iOS:移除 OpenGL ES 3.0 和 METAL

重要: 1. 在您的 Unity 项目中:

在 Unity Project 视图中选择 QCARWrapper.bundle(位于 Assets > Plugins 下),以便其设置显示在 Unity Inspector 中 将 Unity 检查器中 QCARWrapper.bundle 的设置从“Any Platform”更改为“Standalone + Editor”。

重建

​或:

    在Unity生成的Xcode项目中:

转到构建阶段 > 复制捆绑资源 从列表中删除 QCARWrapper.bundle 文件 重建

我的 unity3d 版本是 5 位和 64 位 ,Os是Windows7 64位。

我的问题解决了

编辑:

Unity 编辑器无法显示笔记本电脑摄像头,但 Rebuild 项目,摄像头工作。 例如重建 Android 平台,并在设备上安装 .apk => 应用程序确定。

【讨论】:

【参考方案6】:

转到Name_Vuforia_Unity_Project\Assets\Plugins,你会找到QCARWrapper.dll

删除它并重试(可能需要重新启动统一)。

统一 64 位

【讨论】:

以上是关于Unity3d - 无法加载“资产/插件/QCARWrapper.dll”的主要内容,如果未能解决你的问题,请参考以下文章

在 Unity3d 中从 iphone 加载图像

unity3d脚本不能加载

unity3d 异步加载场景代码

unity3d如何加载视频

(Unity3D) 保存/加载玩家库存

Unity3D的坑系列:动态加载dll