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:
这应该可以解决问题!
【讨论】:
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.0 在 Windows 上支持 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”的主要内容,如果未能解决你的问题,请参考以下文章