Androidjava.lang.UnsatisfiedLinkError: No implementation found for void xx xx xx -- 问题解决

Posted 宾有为

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Androidjava.lang.UnsatisfiedLinkError: No implementation found for void xx xx xx -- 问题解决相关的知识,希望对你有一定的参考价值。

android在开发过程中总会出现各种各样的bug,要想畅通无阻的完成一个app的 开发工作固然有点难度,这不,我的程序跑着跑着又报错了。。。

AndroidRuntime: FATAL EXCEPTION: Thread-4903
    Process: com.hxct.home, PID: 24487
    java.lang.UnsatisfiedLinkError: No implementation found for void com.gqt.codecs.AmrNB.close() (tried Java_com_gqt_codecs_AmrNB_close and Java_com_gqt_codecs_AmrNB_close__)
    at com.gqt.codecs.AmrNB.close(Native Method)
    at com.gqt.media.RtpStreamSender_group.run(RtpStreamSender_group.java:978)

代码没错,偏偏会报出这样的一个错误,看了度娘提供的文章 Android调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for的解决方法 后发现是因为so文件没能全部导入的原因导致,然后开了下自己的so文件,一、二、三、四,好家伙,so包都有了。。。

此时有一种程序都要跟我作对的感觉

直到想起了abiFilters这一过滤器,这玩意就是用来指定自己需要哪个so文件,不包含在里面的so文件夹不会被加载使用,写demo的时候图方便,把项目的build.grace文件大部分内容复制了过来,也就没有留意到abiFilters这一隐患

defaultConfig 
		... ...
        ndk 
            abiFilters 'x86','armeabi-v7a'
        
    

因为我的abiFilters 中没有包含有我存放so文件的文件夹名字,因此我的so文件处于一种没被成功引入的状态,等于白放进来占用加载速度

所以呢,我只需要在abiFilters上加上两个文件名即可

defaultConfig 
		... ...
        ndk 
            abiFilters 'x86','armeabi-v7a','arm64-v8a','armeabi'
        
    

以上是关于Androidjava.lang.UnsatisfiedLinkError: No implementation found for void xx xx xx -- 问题解决的主要内容,如果未能解决你的问题,请参考以下文章