Unity开发Hololens 2时缺失vcruntime140_app.dll问题求助
Hololens 2 Unity QR追踪:vcruntime140_app.dll 加载失败解决办法
问题原因分析
- 架构不匹配:Hololens 2采用ARM64架构,你安装的是x64版本的VC++运行库,而插件依赖的是ARM64版本的
vcruntime140_app.dll(UWP专用版本)。 - DLL访问限制:你在
SystemApps目录找到的DLL属于系统应用私有文件,Unity编译UWP项目时无法访问该路径的文件。 - 初始化方式错误:直接在字段声明时用
new QRCodeWatcher()实例化会导致初始化时机过早,此时运行库可能还未正确加载,且未处理必要的权限请求。
解决办法
- 安装ARM64版本VC++运行库:卸载控制面板中已安装的x64版本VC++ 2015-2022 Redistributable,下载并安装ARM64架构的UWP版本运行库。注意区分桌面版和UWP版,必须选择适配UWP的安装包。
- 修正QRCodeWatcher初始化逻辑:不要在序列化字段时直接实例化,改为在Unity生命周期函数中初始化,并先申请相机权限(Hololens扫描二维码需要相机权限):
[SerializeField] private QRCodeWatcher qrTracker; private async void Start() { // 请求相机权限 var permissionStatus = await Permission.RequestAsync<Permission.Camera>(); if (permissionStatus == PermissionStatus.Granted) { qrTracker = new QRCodeWatcher(); qrTracker.Added += OnQRCodeDetected; qrTracker.Start(); } } private void OnQRCodeDetected(object sender, QRCodeAddedEventArgs args) { Debug.Log($"识别到二维码内容:{args.Code.Data}"); } private void OnDestroy() { if (qrTracker == null) return; qrTracker.Stop(); qrTracker.Added -= OnQRCodeDetected; qrTracker.Dispose(); }
- 配置UWP构建参数:
- 打开Unity的Build Settings,目标平台切换为Universal Windows Platform,目标设备选择Hololens 2。
- 在Player Settings的Publishing Settings中,勾选Capabilities里的WebCam权限。
- 确保架构选择为ARM64,避免混用x64架构导致运行库不兼容。
- 手动添加ARM64版DLL到项目:
找到ARM64版本的vcruntime140_app.dll(可从UWP运行库安装目录提取),复制到项目的Assets/Plugins/UWP/ARM64目录(无此路径则手动创建)。选中该DLL,在Inspector面板设置:- Platform:Universal Windows Platform
- CPU:ARM64
- Copy to Output Directory:Copy Always
内容的提问来源于stack exchange,提问作者Jason Deeprose
相关产品推荐
相关产品推荐

