You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发HoloLens 2应用时遇Unity DLL未找到异常问题求助

解决HoloLens 2 Unity项目中franka_analytical_ik_DLL的DLL Not Found Exception问题

1. 验证DLL导出符号的一致性

  • 打开VS开发者命令提示符,执行命令dumpbin /exports franka_analytical_ik.dll,检查输出的函数名是否和Unity中调用的完全匹配。如果是C编写的DLL,必须用extern "C"包裹导出函数,避免C名字改编导致Unity无法识别。

2. 严格匹配HoloLens 2的架构与编译平台

  • 编译DLL时必须选择ARM64架构的UWP平台,HoloLens 2是原生ARM64设备,x64版本的UWP DLL无法在设备上运行。
  • 检查VS项目属性:
    • 平台工具集选择v143(对应VS2022)
    • C/C++运行库设置为多线程 DLL (/MD),和Unity的运行库保持一致,避免冲突

3. 排查DLL的依赖项完整性

  • 用dumpbin /dependents franka_analytical_ik.dll命令查看依赖的系统或第三方DLL,确保这些依赖同样是UWP ARM64版本,并放置到Unity的Plugins/ARM64文件夹中。
  • 如果依赖VC运行时库,在Unity的Player Settings里开启UWP->发布设置->包含VC++运行时选项,或手动将对应UWP ARM64版本的VC DLL(如vcruntime140_app.dll)添加到Plugins文件夹。

4. 调整Unity插件的配置

  • 在Unity中选中Plugins下的DLL,在Inspector面板配置:
    • 平台设置为UWP,仅勾选ARM64架构
    • 加载类型设置为在启动时加载,避免按需加载导致调用时找不到
    • 确认CPU选项仅勾选ARM64,排除其他架构

5. 确认VS打包时的文件包含

  • 从Unity导出VS项目后,检查解决方案资源管理器->App->Assets->Plugins->ARM64下是否存在目标DLL。若缺失,手动添加并将DLL的“内容”属性设为“是”,确保打包时被纳入Appx包。
  • 在Unity中设置DLL的“复制到输出目录”为“始终复制”,避免导出VS项目时文件丢失。

6. 调试时排查加载细节

  • 在HoloLens 2上调试时,打开VS的调试->Windows->模块窗口,查看DLL是否被加载。若未加载,查看窗口内的错误提示(如依赖缺失、架构不匹配)。
  • 尝试通过设备门户或VS远程调试,手动将DLL放到设备的App安装目录下,重新运行应用,判断是否为打包时的文件缺失问题。

7. 检查UWP编译选项合规性

  • 确保VS项目的预处理器定义包含_WINRT_DLL和WINAPI_FAMILY=WINAPI_FAMILY_APP,这是UWP DLL的必要定义。
  • 禁用UWP不支持的编译选项或API,比如某些非WinRT兼容的Win32 API调用。

内容的提问来源于stack exchange,提问作者D.St

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 23:48:19