精神哥講Crash(一):UnsatisfiedLinkError

版權聲明:本文爲騰訊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,關注咱們 ,尋找答案搜索

相關文章
相關標籤/搜索