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

Unity-UWP部署HoloLens 2+Azure Kinect DK应用遇k4a.dll加载失败

解决HoloLens 2部署Azure Kinect时的k4a DLL加载失败问题

问题描述

开发适配HoloLens 2的应用,借助Azure Kinect DK实现步行手势等人体追踪功能,通过Holographic Remoting在Unity编辑器中测试顺畅,但部署到设备后出现以下错误:

DllNotFoundException: Unable to load DLL 'k4a'. Tried the load the following dynamic libraries: Unable to load dynamic library 'k4a' because of 'Failed to open the requested dynamic library (0x06000000) - The specified module could not be found. (WinError: 0000007e)

已尝试的无效操作:

  • 将Azure Kinect的dll放入Unity生成的Visual Studio UWP项目build\bin\ARM64\Release目录
  • 将Azure Kinect的dll放入Unity项目Assets\Plugins目录

补充背景:使用Unity资源商店的Azure Kinect Examples for Unity集成,传感器dll位于Assets\AzureKinectExamples\SDK\Kinect4AzureSDK\Plugins,人体追踪SDK的dll从Azure Kinect Body Tracking SDK安装路径复制到项目根目录,该配置在Unity编辑器及Windows、Mac、Linux平台可用,但不适用于HoloLens 2部署场景。

核心原因

HoloLens 2是ARM64架构的UWP设备,需要对应架构的UWP版本DLL,而非桌面版DLL;同时必须正确配置Unity的插件导入规则,确保打包时DLL被自动包含到UWP安装包中,手动复制到VS项目目录的方式无法保证DLL被正确签名和打包进appx。

解决步骤

1. 获取ARM64 UWP版Azure Kinect DLL及模型文件

  • 下载官方UWP版本的Azure Kinect传感器SDK和人体追踪SDK(注意区分桌面版)
  • 解压后提取ARM64架构的文件:
    • 传感器相关:k4a.dll、k4arecord.dll、k4a.lib
    • 人体追踪相关:k4abt.dll、k4abt.lib、dnn_model_2_0_op11.onnx(模型文件必须随应用部署)

2. 配置Unity插件导入设置

  1. 在Unity项目中创建Assets\Plugins\UWP\ARM64目录
  2. 将提取到的ARM64 UWP版k4a.dll、k4arecord.dll、k4abt.dll放入该目录
  3. 选中每个DLL,在Inspector面板设置:
    • 平台设置:仅勾选UWP,取消其他平台选项
    • CPU架构:仅勾选ARM64
    • 加载类型:设置为Load on Startup
    • 包含在构建中:确保勾选

3. 处理人体追踪模型文件

将dnn_model_2_0_op11.onnx放入Assets\StreamingAssets目录,这样打包时模型会被自动包含到UWP应用的安装目录中。代码中加载模型时,使用Application.streamingAssetsPath获取正确路径。

4. 清理冲突文件

  • 删除之前放入Assets\Plugins根目录、AzureKinectExamples插件目录中的桌面版DLL,避免打包时出现架构冲突
  • 清空Unity的Library目录,重新生成UWP项目

5. 检查Visual Studio打包配置

  • 打开生成的UWP项目,确认平台目标设置为ARM64
  • 在项目属性的链接器 -> 输入中,添加k4a.lib和k4abt.lib的引用(如果代码中有静态调用需求)
  • 打开Package.appxmanifest,确保已添加webcam、microphone、spatialPerception权限(Azure Kinect功能依赖这些权限)

验证方式

部署到HoloLens 2后,通过设备的Device Portal进入应用安装目录(路径为LocalAppData\<你的应用ID>\LocalState或Assets),确认k4a.dll、k4abt.dll和模型文件都已正确部署。

内容的提问来源于stack exchange,提问作者Chí Hào Hà

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 01:04:55