Android问题:java.lang.UnsatisfiedLinkError: No implementation found for异常解决方法
java.lang.UnsatisfiedLinkError: No implementation found for異常解決方法
一天內(nèi)遇到兩次這個(gè)錯(cuò)誤,被折磨一整天,關(guān)鍵是報(bào)錯(cuò)的原因還不一樣,網(wǎng)上沒有找到相關(guān)的解決方案,在此記錄一下,分享給遇到同樣錯(cuò)誤的同胞。
報(bào)錯(cuò)的原因
報(bào)這個(gè)錯(cuò)的原因猜測是因?yàn)闆]有找到so庫,有時(shí)候我們再導(dǎo)入jar包的時(shí)候,可能還需要導(dǎo)入對應(yīng)的so庫。那么報(bào)這個(gè)錯(cuò)原因會有兩個(gè)。
1. SO庫沒有導(dǎo)入
一般jar包的位置是放置到libs下,so文件放在app\src\main\jniLibs目錄下,如果沒有jniLibs則自行創(chuàng)建。其實(shí)so文件也是可以放在libs目錄下的,不過要再對應(yīng)model下build.gradle中加入以下代碼:
sourceSets {main {jniLibs.srcDirs = ['libs']}}如果你是將so文件放在jniLibs目錄下了,那么則必須刪除以上代碼,否則還是會找不到so文件。
還有一種情況,這個(gè)是最騷的,那就是你以上步驟都是對的,但是還是找不到so文件,那么恭喜你,這也許不是你的錯(cuò)……
都是他的錯(cuò)——Android Studio緩存的錯(cuò),既然知道是緩存的錯(cuò),那就簡單了,把緩存刪了就OK了
第一步:關(guān)閉AS
第二步:打開項(xiàng)目所在的目錄將項(xiàng)目下的.gradle、.idea、gradle三個(gè)文件刪了
第三步:將所需要的的jar包和so庫都直接在文件中重新加入一遍。
第四步:啟動AS,啟動項(xiàng)目,如果出現(xiàn)一個(gè)彈窗提示,不要慌,這是因?yàn)榘裧radle給刪了,提示你是否重新創(chuàng)建,點(diǎn)OK就行,別點(diǎn)cancle,否則后面需要你自己創(chuàng)建了,我就幫不到你了。
第五步:沒了。
2. so文件沒有加載
除了上面的一種情況外,還會出現(xiàn)一種情況,就是因?yàn)閟o庫沒有初始化。一些jar包只提供了對應(yīng)so文件,但內(nèi)部并沒有初始化,需要自己初始化o((⊙﹏⊙))o。看來我還是太年輕了。那么怎么解決呢,直接上代碼:
Application.class
嗯,沒了,不用擔(dān)心,這次真的完結(jié)了。
以上就是我遇到的,如果沒能還是沒能解決你的問題,那沒辦法了╮(╯▽╰)╭。
新增:
還有一種可能,框架下的文件不統(tǒng)一,比如我的jniLibs文件下,只有一個(gè)armeabi-v7a,那么他支持在這個(gè)框架下的系統(tǒng)使用,如果你還用到了armeabi或arm64-v8a等多個(gè)框架,那么你最好保證所有支持的框架下的so庫齊全,如果沒有,則粘貼一個(gè)其他框架下的包。
總結(jié)
以上是生活随笔為你收集整理的Android问题:java.lang.UnsatisfiedLinkError: No implementation found for异常解决方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python opencv将图片转为灰度
- 下一篇: 对于自己(Android)秋招的一点总结