Unity3D运行报DllNotFoundException错误的解决方案

 更新时间:2021年04月13日 11:04:01   作者:狂云歌  
这篇文章主要介绍了Unity3D运行报DllNotFoundException错误的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

起因

unity程序build到pc上,拿到其他人的机器上结果有些功能不正常,看log里面大概是

Fallback handler could not load library: xxx.dll

DllNotFoundException: xxx.dll

初看以为是缺失dll,但是实际上并不是这样,首先在很多人机器上都是没有问题的,只在极少数机器上才出现异常,另外报错的dll都是有的,并不存在缺失的问题。

后来网上搜了一下,看到http://answers.unity3d.com/questions/993154/failed-to-load-dll-error.html 中提到了

it only seems to happen with C++ DLLs that have dependencies that aren't already loaded.

好吧,这个理由很理想,就是unity的项目依赖了A.dll,而A.dll又依赖了B.dll,而B.dll缺失,导致load A.dll时异常,我觉得这是unity打包的坑~

那么主要原因就是大部分机器上都带有A.dll,而少部分机器上缺失B.dll

解决

使用dll Dependency Walker这个软件来查找dll所依赖的其他dll,就可以很容易的查到缺失的是哪个dll,把它加上就好

在我这个case中,使用了unity的easymovietexture插件来播放视频,而easymovietexture依赖ffmpeg,其中一个dll依赖opencl.dll,大部分机器上都有这个dll,而少部分机器上是没有这个dll,取而代之的是opencl32.dll和opencl64.dll,可能是dll的依赖兼容性之类的没做好吧!

最终问题解决,欣慰~

补充:Unity3d使用dll时有些电脑会报DllNotFoundException错误 无法使用dll库

unity3d开发过程中使用了外部动态链接库dll,有些电脑运行工程时会报DllNotFoundException的错误,这是由于该dll中引用系统内的dll不存在的原因。

在这里插入图片描述

团队开发过程中所有人都可以 就是我自己的电脑不行,无论如何处理都不行,工程重新加载 ,平台切换等全部不行 。

最后定位到电脑系统问题。

找到自己使用dll库,

下载depends软件,打开使用的dll库

在这里插入图片描述

如下图 可以发现系统中缺少该dll,

在这里插入图片描述

去网上下载该库放入system32内

在这里插入图片描述

重新进工程就可以了!

补充:unity 无法使用 dll 库

出错 :

Unhandled Exception: System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.

使用Framework 3.5 重新编译库工程 即可~

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • C#非托管泄漏中HEAP_ENTRY的Size对不上解析

    C#非托管泄漏中HEAP_ENTRY的Size对不上解析

    这篇文章主要为大家介绍了C#非托管泄漏中HEAP_ENTRY的Size对不上解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • C#编程和Visual Studio使用技巧(上)

    C#编程和Visual Studio使用技巧(上)

    C#是一门伟大的编程语言,与C++和Java相比,它的语法更简单,相对来说更好入门。Visual Studio作为.Net平台上最重量级的IDE,也通过不断的更新为开发者带来更出色的开发体验。本文将介绍10个C#编程和Visual Studio IDE使用技巧。
    2015-10-10
  • C#使用标签软件Bartender打印标签模板

    C#使用标签软件Bartender打印标签模板

    这篇文章介绍了C#使用标签软件Bartender打印标签模板,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-01-01
  • Unity Undo实现原理和使用方法详解

    Unity Undo实现原理和使用方法详解

    本文将详细介绍Unity Undo实现原理和使用方法,并提供多个使用例子,帮助开发者更好地理解和应用该功能,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • 基于Kubernetes实现前后端应用的金丝雀发布(两种方案)

    基于Kubernetes实现前后端应用的金丝雀发布(两种方案)

    这篇文章主要介绍了基于Kubernetes实现前后端应用的金丝雀发布,文中给大家提到了两种常用方案,通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • C# DataSet的内容写成XML时如何格式化字段数据

    C# DataSet的内容写成XML时如何格式化字段数据

    许多读者经常询问一个问题,那就是在将DataSet的内容写成XML时,如何格式化字段数据。最常见的需求,就是希望日期时间值与数值数据能够以所需的格式呈现于XML中。
    2009-02-02
  • C#实现WebSocket协议客户端和服务器websocket sharp组件实例解析

    C#实现WebSocket协议客户端和服务器websocket sharp组件实例解析

    这篇文章主要介绍了C#实现WebSocket协议客户端和服务器websocket sharp组件实例解析,包括websocket sharp组件的概念及使用方法,需要的朋友可以参考下
    2017-04-04
  • C#对Xamarin框架进行数据绑定

    C#对Xamarin框架进行数据绑定

    这篇文章介绍了C#对Xamarin框架进行数据绑定,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-01-01
  • C#窗体-数据库连接及登录功能的实现案例

    C#窗体-数据库连接及登录功能的实现案例

    这篇文章主要介绍了C#窗体-数据库连接及登录功能的实现案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • C#操作注册表的方法

    C#操作注册表的方法

    这篇文章主要介绍了C#操作注册表的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2021-01-01

最新评论