版权声明:本文为腾讯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. Security.website-that-focus-on-mobile-app-security

    Mobile App Security 1. DATA THEOREM LAB https://datatheorem.github.io/ Data Theorem's technical blog ...

  2. java socket 网络编程常见异常

    1.java.net.SocketTimeoutException 这个异常比较常见,socket超时.一般有2个地方会抛出这个,一个是connect的时候,这个超时参数由connect(Socket ...

  3. aa4

    // 初始化地图 var BMapExt = new BMapExtension(domMain, BMap, require('echarts'), require('zrender')); var ...

  4. ms sql server 在cmd中执行sqlcmd的时候报错

    cmd下直接输入sqlcmd会提示 错误: HResult 0x2,级别 16,状态 1命名管道提供程序: 无法打开与 SQL Server 的连接 [2].Sqlcmd: 错误: Microsoft ...

  5. XMLHttpRequest cannot load file:///E:/userdialog.html?_=1465888805734. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-reso

    做前端写静态页面时,采用的是jq easyui框架 在ie与webkit总是加载的时候总是在loading... 而firefox却是正常加载的,总以为是代码写错了, 经过再三的检查以及百度查找,确认 ...

  6. Spring aop 原始的工作原理的理解

    理解完aop的名词解释,继续学习spring aop的工作原理. 首先明确aop到底是什么东西?又如何不违单一原则并实现交叉处理呢? 如果对它的认识只停留在面向切面编程,那就脏了.从oop(Objec ...

  7. home键通知

    NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("closeAlert"), n ...

  8. UnicodeEncodeError: 'ascii' codec can't encode characters in position问题的解决办法

    今天刚开始用ulipad写python代码 代码如下 #! /usr/bin/env python#coding=utf-8a = int(raw_input('请输入一个数:'))if a<1 ...

  9. oracle的加密和解密

    加密函数 create or replace function encrypt_des(p_text varchar2, p_key varchar2) return varchar2 isv_tex ...

  10. linux下的基本操作

    1.怎么在Ubuntu下安装flash插件 2.Ubuntu14.04安装wineqq国际版 注: 安装包wine-qqintl下载 在/usr/share/applications/下可找到国际版q ...