我想在Unity android应用程序上使用c ++ dll。要在Android设备上使用本机dll,我了解到我应该使用Unity 5.我从here下载unity5。我的申请需要vuforia。所以我从here下载了vuforia软件包。
Unity 5是64位。
在统一编辑器上,我删除MainCamera
并添加ARCamera
。 Unity控制台上有一条错误消息。信息如下:
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)
答案 0 :(得分:8)
要将Vuforia与Unity 64位一起使用,只需将QCARWrapper
DLL从/Plugins
移至/Plugins/x86
即可。这些是DLL:
这应该可以解决问题!
答案 1 :(得分:2)
转到https://unity3d.com/get-unity/update在那里,您会看到附加下载,然后您会看到 FOR WINDOWS 。单击它并选择 Unity Editor(32位)。
修改强>: 我看到很多 dowvotes 。当问到这个问题时, 仅解决方案。当这个问题 WAS 被问到时, Unity 5 64位刚刚发布了,那时这是 ONLY 解决方案。当 Vuforia 发布 64位版本的插件时,此答案已更改为 5个月时提供的当前答案。
答案 2 :(得分:2)
Vuforia 5.0 支持 Windows 上的 32位版本的Unity编辑器,以及 64位版本在Mac上。
所以,有两种可能的解决方案:
<强> OR 强>
在内创建一个新文件夹&#34; x86&#34;
<强>资产&GT;&GT;插件强>
在你的团结项目结构中 然后将以下文件从&#34;插件&#34; 移至新创建的&#34; x86&#34; 文件夹。
在检查日志消息之后,如果您看到如下日志:
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()
然后,恭喜!!你准备好了!
答案 3 :(得分:1)
我有同样的问题/无法加载'资产/插件/ QCARWrapper.dll'/与vuforia插件和最新版本的Unity(目前5.1.2f 64位),也无法让我的笔记本电脑相机工作。
Unity的32位版本解决了所有问题,即使我的操作系统是64位(Windows 7)。
答案 4 :(得分:0)
如果您使用的是Unity 5.1,请确保在Android和iOS的播放器设置中设置正确的图形API设置:
禁用“自动图形API”复选框 在图形API列表中,确保仅包含OpenGL ES 2.0: Android:删除OpenGL ES 3.0 iOS:删除OpenGL ES 3.0和METAL
重要: 1.在Unity项目中:
在Unity项目视图中选择QCARWrapper.bundle(位于Assets&gt; Plugins下),以便其设置显示在Unity Inspector中 将Unity检查器中的QCARWrapper.bundle的设置从“任何平台”更改为“独立+编辑器”。
<强>重建强>
OR:
转到Build Phases&gt;复制捆绑资源 从列表中删除QCARWrapper.bundle文件 <强>重建强>
我的unity3d版本是5和64位 ,Os是Windows7 64位。
我的问题已解决。
编辑:
Unity编辑器无法显示笔记本电脑相机,但重建项目,相机工作。 例如重建Android平台,并在device =&gt;上安装.apk申请好。
答案 5 :(得分:0)
转到Name_Vuforia_Unity_Project\Assets\Plugins
,您会找到QCARWrapper.dll
。
删除它并重试(可能需要重启统一)。
Unity 64位