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

作者:狂云歌 时间:2021-09-13 00:22:35 

起因

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不存在的原因。

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

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

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

找到自己使用dll库,

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

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

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

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

去网上下载该库放入system32内

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

重新进工程就可以了!

补充:unity 无法使用 dll 库

出错 :

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

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

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

来源:https://blog.csdn.net/madcloudsong/article/details/51039449

标签:Unity3D,DllNotFoundException
0
投稿

猜你喜欢

  • Java详解实现多线程的四种方式总结

    2023-04-04 19:43:34
  • SpringBoot如何使用ApplicationContext获取bean对象

    2023-06-28 20:36:55
  • SpringBoot打包发布到linux上(centos 7)的步骤

    2023-08-11 06:35:55
  • SpringBoot结合Redis配置工具类实现动态切换库

    2022-04-15 14:14:13
  • java学习DongTai被动型IAST工具部署过程

    2023-06-21 09:43:03
  • Java锁之自旋锁详解

    2022-12-12 21:38:36
  • 详解通过JDBC进行简单的增删改查(以MySQL为例)

    2023-08-14 20:16:40
  • Android开发组件flutter的20个常用技巧示例总结

    2023-06-19 17:25:23
  • 使用JPA主键@Id,@IdClass,@Embeddable,@EmbeddedId问题

    2022-07-07 18:35:41
  • java io文件操作从文件读取数据的六种方法

    2023-05-17 02:54:40
  • java 集合工具类Collections及Comparable和Comparator排序详解

    2023-04-29 03:42:06
  • C#中Convert.ToDecimal()报错问题的解决

    2022-05-09 06:05:56
  • Java基础之List内元素的排序性能对比

    2023-04-05 15:13:58
  • java格式化数值成货币格式示例

    2023-01-31 06:27:45
  • Java模拟计算机的整数乘积计算功能示例

    2022-01-30 19:25:51
  • android studio编译jar包或者aar包的方法教程详解

    2023-06-18 17:22:32
  • Spring Bean自动装配入门到精通

    2023-11-03 07:29:09
  • java实现纸牌游戏之小猫钓鱼算法

    2021-08-11 22:57:00
  • Java毕业设计实战之在线蛋糕销售商城的实现

    2022-06-06 14:25:39
  • java开发RocketMQ生产者高可用示例详解

    2023-04-27 13:27:57
  • asp之家 软件编程 m.aspxhome.com