版权声明:本文为腾讯Bugly原创文章,如需转载,请标明出处。java
你们好,我是腾讯Bugly的精神哥(英文名:spirit),是Bugly资深码奴的同时,又是Bugly神秘的Crash实验室研究员哦!个人主要任务就是泡在实验室里,嗑着瓜子嚼着鸡爪,研究移动App中各类Crash(专挑疑难、坑爹、时髦、有趣的Crash),并经过“精神哥讲Crash”系列按期分享给你们!微信
今天精神哥给你们分享的第一个Crash是“UnsatisfiedLinkError” 。工具
1、UnsatisfiedLinkError基本介绍spa
如今App不少功能都是经过集成第三方工具实现的,第三方工具颇有可能在SO动态库里实现核心功能(Bugly提供的libBugly.so,能捕获这类C/C++异常!),因此就算你不用NDK开发也必定会跟SO打交道,你肯定你加载SO的姿式都对了吗?图片
2、错误场景分析
一、低级错误——根本木有SO,你加载个球啊!开发
二、进阶错误——根本木有X86的SO,在X86的设备上你加载个球啊!it
三、大坑——尼玛,好难发现!class
3、精神哥有话说
虽然出错缘由很简单,但犯错的人很确实多,这货都挤到Bugly Crash影响力第16位了!
精神哥发现java.lang.UnsatisfiedLinkError中couldn't find “XX.so”的占比很是高,上面提的三个场景都是这种错误!
但你见过下面这种错误吗?
java.lang.UnsatisfiedLinkError:dlopen failed: “*//arm/*.so" has unexpected e_machine: 3
这是天坑啊,确定是实习生挖的!
想知道怎么发生的?进阶
请搜索关注公众号:腾讯Bulgy,或搜索微信号:weixinBugly,关注咱们 ,寻找答案搜索