Unity3d - 加载失败 'Assets/Plugins/QCARWrapper.dll'
Unity3d - Failed to load 'Assets/Plugins/QCARWrapper.dll'
我想在 unity android 应用程序上使用 c++ dll。要在 android 设备上使用本机 dll,我了解到我应该使用 Unity 5。我从 here. My application requires vuforia. So I download vuforia package from here 下载 unity5。
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)
转到 https://unity3d.com/get-unity/update 在那下面,您会看到 ADDITIONAL DOWNLOADS 在下面您会看到 FOR WINDOWS.单击它并选择 Unity Editor (32-bit)。
编辑:
我看到很多 投反对票 。这个 是 ONLY 提出这个问题时的解决方案。 Unity 5 64 位 刚刚 发布 当这个问题 WAS 问的时候,这是 当时只有 个解决方案。当 Vuforia 发布 64bit 版本时,此答案已更改为 5 个月 后提供的当前答案他们的插件。
我遇到了同样的问题/无法使用 vuforia 插件和最新版本的 Unity(当前为 5.1.2f 64 位)加载 'Assets/Plugins/QCARWrapper.dll'/,而且我的笔记本电脑摄像头也无法正常工作。
Unity 的 32 位版本已解决所有问题,即使我的 os 是 64 位 (Windows 7)。
如果您使用的是 Unity 5.1,请确保在 Android 和 iOS 的播放器设置中设置正确的图形 API 设置:
禁用 "Automatic Graphics API" 复选框
在 Graphics APIs 列表中,确保仅包含 OpenGL ES 2.0:
Android: 删除 OpenGL ES 3.0
iOS: 移除 OpenGL ES 3.0 和 METAL
重要:
1. 在您的 Unity 项目中:
Select 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 编辑器无法显示笔记本电脑摄像头,但是 重建 项目,摄像头工作。
例如重建 Android 平台,并在设备上安装 .apk => 应用程序确定。
转到Name_Vuforia_Unity_Project\Assets\Plugins
,你会发现QCARWrapper.dll
。
删除它并重试(可能需要重新启动 unity)。
Unity 64 位
要将 Vuforia 与 Unity 64 位一起使用,只需将 QCARWrapper
DLL 从 /Plugins
移动到 /Plugins/x86
。这些是 DLL:
- QCARWrapper.exp
- QCARWrapper.lib
- QCARWrapper.dll
- QCARWrapper.dll.签名
这应该可以解决问题![=13=]
Vuforia 5.0 在 Windows[=49= 上支持 32 位 版本的 Unity 编辑器],64 位 版本 在 Mac 上。
所以,有两种可能的解决方案:
- 您只需要在 Windows 上安装并使用 Unity 5 32 位编辑器。
或
新建文件夹"x86"里面
资产>>插件
在你的统一项目结构中
然后将以下文件从 "Plugins" 移动到新创建的 "x86" 文件夹。
- QCARWrapper.lib
- QCARWrapper.dll
- QCARWrapper.dll.签名
- 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()
那么,恭喜!!您可以开始了!
我想在 unity android 应用程序上使用 c++ dll。要在 android 设备上使用本机 dll,我了解到我应该使用 Unity 5。我从 here. My application requires vuforia. So I download vuforia package from here 下载 unity5。
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)
转到 https://unity3d.com/get-unity/update 在那下面,您会看到 ADDITIONAL DOWNLOADS 在下面您会看到 FOR WINDOWS.单击它并选择 Unity Editor (32-bit)。
编辑: 我看到很多 投反对票 。这个 是 ONLY 提出这个问题时的解决方案。 Unity 5 64 位 刚刚 发布 当这个问题 WAS 问的时候,这是 当时只有 个解决方案。当 Vuforia 发布 64bit 版本时,此答案已更改为 5 个月 后提供的当前答案他们的插件。
我遇到了同样的问题/无法使用 vuforia 插件和最新版本的 Unity(当前为 5.1.2f 64 位)加载 'Assets/Plugins/QCARWrapper.dll'/,而且我的笔记本电脑摄像头也无法正常工作。
Unity 的 32 位版本已解决所有问题,即使我的 os 是 64 位 (Windows 7)。
如果您使用的是 Unity 5.1,请确保在 Android 和 iOS 的播放器设置中设置正确的图形 API 设置:
禁用 "Automatic Graphics API" 复选框 在 Graphics APIs 列表中,确保仅包含 OpenGL ES 2.0: Android: 删除 OpenGL ES 3.0 iOS: 移除 OpenGL ES 3.0 和 METAL
重要: 1. 在您的 Unity 项目中:
Select 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 编辑器无法显示笔记本电脑摄像头,但是 重建 项目,摄像头工作。 例如重建 Android 平台,并在设备上安装 .apk => 应用程序确定。
转到Name_Vuforia_Unity_Project\Assets\Plugins
,你会发现QCARWrapper.dll
。
删除它并重试(可能需要重新启动 unity)。
Unity 64 位
要将 Vuforia 与 Unity 64 位一起使用,只需将 QCARWrapper
DLL 从 /Plugins
移动到 /Plugins/x86
。这些是 DLL:
- QCARWrapper.exp
- QCARWrapper.lib
- QCARWrapper.dll
- QCARWrapper.dll.签名
这应该可以解决问题![=13=]
Vuforia 5.0 在 Windows[=49= 上支持 32 位 版本的 Unity 编辑器],64 位 版本 在 Mac 上。
所以,有两种可能的解决方案:
- 您只需要在 Windows 上安装并使用 Unity 5 32 位编辑器。
或
新建文件夹"x86"里面
资产>>插件
在你的统一项目结构中 然后将以下文件从 "Plugins" 移动到新创建的 "x86" 文件夹。
- QCARWrapper.lib
- QCARWrapper.dll
- QCARWrapper.dll.签名
- 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()
那么,恭喜!!您可以开始了!