版权声明:本文为腾讯Bugly原创文章,如需转载,请标明出处。
 
大家好,我是腾讯Bugly的精神哥(英文名:spirit),是Bugly资深码奴的同时,又是Bugly神秘的Crash实验室研究员哦!我的主要任务就是泡在实验室里,嗑着瓜子嚼着鸡爪,研究移动App中各种Crash(专挑疑难、坑爹、时髦、有趣的Crash),并通过“精神哥讲Crash”系列定期分享给大家!
 
今天精神哥给大家分享的第一个Crash是“UnsatisfiedLinkError” 。
 
一、UnsatisfiedLinkError基本介绍

 
现在App很多功能都是通过集成第三方工具实现的,第三方工具很有可能在SO动态库里实现核心功能(Bugly提供的libBugly.so,能捕获这类C/C++异常!),所以就算你不用NDK开发也一定会跟SO打交道,你确定你加载SO的姿势都对了吗?
 
二、错误场景分析
1、低级错误——根本木有SO,你加载个球啊!

 
2、进阶错误——根本木有X86的SO,在X86的设备上你加载个球啊!
 
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,关注我们 ,寻找答案
 

精神哥讲Crash(一):UnsatisfiedLinkError的更多相关文章

  1. 【腾讯bugly干货分享】精神哥手把手教你怎样智斗ANR

    上帝说要有ANR,于是Bugly就有了ANR上报.那么ANR究竟是什么? 近期非常多童鞋问起精神哥ANR的问题,那么这次就来聊一下,鸡爪怎么泡才好吃.噢不,是怎样高速定位ANR. ANR是什么 简单说 ...

  2. 继续我们的学习。这次鸟哥讲的是LVM。。。磁盘管理 最后链接文章没有看

    LVM...让我理解就是一个将好多分区磁盘帮到一起的玩意,类似于烙大饼...然后再切 新建了一个虚拟机,然后又挂了一个5G的硬盘,然后分出了5块空间,挂载到了虚拟机上.这些步骤很简单 fdisk    ...

  3. 听桶哥讲session和cookie

    首先,cookie和session是什么关系? 他们的关系很简单,利用和被利用的关系. 话说,由于http协议的无状态特性,同一client两个不同的请求之间完全独立,没有很好的办法进行一些数据共享, ...

  4. 肖哥讲jquery:

    jquery 是一个模块 一个库 js封装的一个库 导入jq  <script src="jquery.js"></script>   <script ...

  5. python27期尚哥讲数据库:

    1.下载:https://www.mysql.com/ DOWNLOADS MySQL Community (GPL) Downloads »-- MySQL Community Server Loo ...

  6. python27期尚哥讲TCP:

    TCP:传输控制协议(使用情况多于udp) 稳定:保证数据一定能收到 相对UDP会慢一点 web服务器一般都使用TCP(银行转账,稳定比快要重要)TCP通信模型: 在通信之前,必须先等待建立链接 TC ...

  7. python27期尚哥讲TFTP:

    TFTP介绍 :TFTP(Trivial File Transfer Protocol,简单⽂件传输协议)是TCP/IP协议簇中的⼀个⽤来在客户端与服务器之间进⾏简单⽂件传输的协议使用tftp这个协议 ...

  8. python27期尚哥讲网络编程:

    python27day26网络编程----------------------------------------------------------------------------------- ...

  9. python27期尚哥讲并发编程:

    python27day23并发编程----------------------------------------------------------------------------------- ...

随机推荐

  1. C#邮箱发送验证码

    public static void SendTo(string mailAddress, string subject, string body)        { //mailAddress 所要 ...

  2. 弄个知乎的粒子动态背景_实践particles.js

    好久没登录知乎,发现他们的登录页面粒子动态效果蛮炫的,查一下代码用了Particles.js基于Canvas画布创建粒子颗粒效果. 上图 上图:   感觉有比格,就照着弄了一个,玩玩.   githu ...

  3. JAVA第4次作业

    package fuzhi; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOExc ...

  4. XE3随笔19:实例 - 借用 Google 实现全文翻译

    调用 Google 翻译的地址格式: http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" + ...

  5. keepalived健康检查方式

    keepalived对后端realserver的健康检查方式主要有以下几种: TCP_CHECK:工作在第4层,keepalived向后端服务器发起一个tcp连接请求,如果后端服务器没有响应或超时,那 ...

  6. HTML5 CSS3学习

    HTML5 CSS3学习 :http://www.1000zhu.com/course/css3/ HTML5 相关书籍:   http://www.html5cn.com.cn/news/gdt/2 ...

  7. R语言读取excel文件的3种方法

    R读取excel文件中数据的方法: 电脑有一个excel文件,原始的文件路径是:E:\R workshop\mydata\biom excel数据为5乘2阶矩阵,元素为                ...

  8. codingNet项目的创建

    首先,在codingNet上面创建一个项目(一般情况下) 然后,在本地打开项目并添加到储存库 其次,提交代码到已经创建好的项目中(注意赋值远程存储库的路径)

  9. java加密解压类库

    java压缩类库_支持加密解压.zip public static void unzip(File zipFile, String dest, String passwd) throws ZipExc ...

  10. CSS3使用AnimationEnd为同一个元素添加多个动画效果

    <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <meta name ...