起因:

unity无法直接使用webp格式文件,需要用到第三方插件:

unity使用webp方法

        private unsafe List<(Texture2D, int)> LoadAnimation(byte[] bytes){List<(Texture2D, int)> ret = new List<(Texture2D, int)>();WebPAnimDecoderOptions option = new WebPAnimDecoderOptions{use_threads = 1,color_mode = WEBP_CSP_MODE.MODE_RGBA,};option.padding[5] = 1;NativeLibwebpdemux.WebPAnimDecoderOptionsInit(&option);fixed (byte* p = bytes){WebPData webpdata = new WebPData{bytes = p,size = new UIntPtr((uint)bytes.Length)};WebPAnimDecoder* dec = NativeLibwebpdemux.WebPAnimDecoderNew(&webpdata, &option);//dec->config_.options.flip = 1;WebPAnimInfo anim_info = new WebPAnimInfo();NativeLibwebpdemux.WebPAnimDecoderGetInfo(dec, &anim_info);Debug.LogWarning($"{anim_info.frame_count} {anim_info.canvas_width}/{anim_info.canvas_height}");uint size = anim_info.canvas_width * 4 * anim_info.canvas_height;int timestamp = 0;IntPtr pp = new IntPtr();byte** unmanagedPointer = (byte**)&pp;for (int i = 0; i < anim_info.frame_count; ++i){int result = NativeLibwebpdemux.WebPAnimDecoderGetNext(dec, unmanagedPointer, &timestamp);Assert.AreEqual(1, result);int lWidth = (int)anim_info.canvas_width;int lHeight = (int)anim_info.canvas_height;bool lMipmaps = false;bool lLinear = false;Texture2D texture = Texture2DExt.CreateWebpTexture2D(lWidth, lHeight, lMipmaps, lLinear);texture.LoadRawTextureData(pp, (int)size);{// Flip updown.// ref: https://github.com/netpyoung/unity.webp/issues/25// ref: https://github.com/netpyoung/unity.webp/issues/21// ref: https://github.com/webmproject/libwebp/blob/master/src/demux/anim_decode.c#L309Color[] pixels = texture.GetPixels();Color[] pixelsFlipped = new Color[pixels.Length];for (int y = 0; y < anim_info.canvas_height; y++){Array.Copy(pixels, y * anim_info.canvas_width, pixelsFlipped, (anim_info.canvas_height - y - 1) * anim_info.canvas_width, anim_info.canvas_width);}texture.SetPixels(pixelsFlipped);}texture.Apply();ret.Add((texture, timestamp));}NativeLibwebpdemux.WebPAnimDecoderReset(dec);NativeLibwebpdemux.WebPAnimDecoderDelete(dec);}return ret;}

打包exe后,试了很多电脑,都没问题。但是在一台新电脑上却出现了bug

NativeLibwebpdemux.WebPAnimDecoderOptionsInit(&option);

这里报错

问题描述:

一开始,怀疑是下载过程出了问题,后来发现,下载的bytes[]写入本地后,webp可以正常打开。

所以排除是网络问题。

然后使用repoter真机看log发现:

然后在公司非开发人员的电脑上测试发现也是正常的,就卡在这里好久。

结果:

后来经过和同事们讨论,发现使用的插件是c++写的,那么就很可能是缺少c++环境导致的。

确实,我们开发人员在安装vs的时候,会自动安装。新电脑应该是没有配置这种环境。

果然,在安装vs c++ 2015环境后,就可以正常使用了。

记一次DllNotFoundException(缺少vs C++ 环境导致)相关推荐

  1. 记一次lua打包环境导致的coredump

    记一次lua打包环境导致的coredump 背景 线上nginx升级新版本出现coredump, 在lua 栈 一会malloc free 函数 #0 0x00007f289d4dfc5c in fr ...

  2. java redis使用卡死_记一次找因 redis 使用不当导致应用卡死 bug 的过程

    原标题:记一次找因 redis 使用不当导致应用卡死 bug 的过程 作者:小木 my.oschina.net/xiaomu0082/blog/2990388 首先说下问题现象:内网sandbox环境 ...

  3. 由于uvc驱动函数缺少return语句而导致内核oops的一例

    一.实验环境 1.软件 a) Vmware版本:Vmware Workstation 12.5.7 b) Ubuntu版本:9.10 c) 内核版本:2.6.31.14 d) gcc版本:4.4.1 ...

  4. 记openssh升级,telnet安装(环境CentOS 7.9。 晗旧版本的不同补充)

    目录 一.前提工作 1. 先查看系统版本: 2. 准备相关安装包(rpm包)部分rpm包列表: 二.安装telnet(CentOS Linux release 7.9.2009环境) 1. 检查xin ...

  5. 记一次feign请求,开发环境第一次访问一直超时的问题

    现象描述 spring cloud配置的feign接口,进行调用时,本地dev环境启动后,第一次永远超时,第二次就可以正常调用了. 先上结论 由于自己注册中心,用的是发布到测试环境的注册中心,同时注册 ...

  6. 记一次vue项目yarn打包环境配置失效的解决方案

    项目中使用到了yarn打包工程,主要有以下几个命名. # build for production with minification yarn run build# build for produc ...

  7. SQL调优--记一次表统计信息未及时更新导致查询超级慢

                某日同事丢给我一个看上去复杂的查询(实际就涉及两张表,套来套去)说只是换了日期条件,但一个查询5秒出数据,一个根本查不出来.现在整理下解决过程,及涉及的知识点. 若有不正之处, ...

  8. 记一次找因 Redis 使用不当导致应用卡死 bug 的过程

    首先说下问题现象:内网sandbox环境API持续1周出现应用卡死,所有api无响应现象 刚开始当测试抱怨环境响应慢的时候 ,我们重启一下应用,应用恢复正常,于是没做处理.但是后来问题出现频率越来越频 ...

  9. ubuntu18.04错误配置变量环境导致无法进入系统

    1.问题描述 错误配置环境变量(直接在/etc/profile文件末尾添加了export xxx),关机后一直在登录界面循环无法进入系统. ###环境变量的添加是在原有变量之后以冒号(:)分隔加入,并 ...

最新文章

  1. 有计划地开放数据 促进大数据法规落地
  2. 报名丨2019全球AI文创大赛启动仪式邀您参加!
  3. IOS开发(九):场景
  4. 会员系统中需要验证用户的邮箱是否真实存在
  5. [高级软件工程教学]团队Beta阶段成绩汇总
  6. linux下面使用飞书个人版预览doc
  7. 四宫格效果 css_【深度教研】智力游戏“九宫格” 集体教研活动纪实
  8. Java DOC 转换给 PDF 格式文档的代码
  9. uds下载服务流程图_UDS诊断全集,干货分享
  10. 了解前端——js需知道知识点
  11. mysql 游标中实现递归_mysql中实现递归查询?
  12. ORACLE数据库常见问题诊断方法 ---(常见错误篇)
  13. rhel5编译安装2.6.29.2内核
  14. hexo 炫酷主题配置
  15. 投资:螺纹钢研究框架
  16. Are You a Software Architect?
  17. 吕梁云计算机中心,吕梁云计算中心综合实力全国排第三
  18. 小米怎么快速回到顶部_灵巧精干的出游神器 小米对讲机Lite上手体验
  19. vm文件,.vm后缀的文件
  20. zk-03-Zookeeper部署和运行

热门文章

  1. TemplatesImpl在Shiro中的利用
  2. pdf转换成txt转换器的操作方法
  3. 服务器光盘修复读不出盘,光驱不读盘的原因与解决方法
  4. house-robber-iii
  5. 【硬件专题】案例:热敏打印效果差?为什么是多个因素造成的?
  6. 区块链重塑人类社群生态
  7. 飞翔的小鸟1.0 JAVA
  8. 难忘的聚会,美好的时光(1957--1962)
  9. MySQL查询分析器EXPLAIN
  10. 是你想要的,在游戏中学编程