java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/xxx/lib/arm/liblame.so: has text relocation

Posted 我是一只小小bird

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/xxx/lib/arm/liblame.so: has text relocation相关的知识,希望对你有一定的参考价值。

最近在写本地录音转码过程中引入了liblame.so,我这边用了不同系统版本的手机测试本地录音都没有出现问题,但是有一天,同事在测试的时候,出现了以下错误:

09-13 17:32:29.140 26874-27362/com.axxn.xx E/linker: /data/app/com.axxn.xx-2/lib/arm/liblame.so: has text relocations
09-13 17:32:29.192 26874-27362/com.axxn.xx E/androidRuntime: FATAL EXCEPTION: Thread-13
                                                                Process: com.axxn.xx, PID: 26874
                                                                java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/com.axxn.xx-2/lib/arm/liblame.so: has text relocations
                                                                    at java.lang.Runtime.loadLibrary0(Runtime.java:994)
                                                                    at java.lang.System.loadLibrary(System.java:1533)
                                                                    at net.sourceforge.lame.Lame.<clinit>(Lame.java:35)
                                                                    at net.sourceforge.lame.Lame.initializeEncoder(Native Method)
                                                                    at com.axxn.xx.modules.record.scene.SceneRecorderHandler.run(SceneRecorderHandler.java:76)

 经查资料得知,原来是Google在API23以后把这个原本是Warn标志升级到了Error标志,故会报错。

解决办法就是把我们项目配置中的targetSdkVersion版本改为22或者以下,问题就会得到解决。

在此记录下这个错误。

 

以上是关于java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/xxx/lib/arm/liblame.so: has text relocation的主要内容,如果未能解决你的问题,请参考以下文章