失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Android之解决java.lang.UnsatisfiedLinkError: dlopen failed: ××××.so: has text relocations

Android之解决java.lang.UnsatisfiedLinkError: dlopen failed: ××××.so: has text relocations

时间:2020-08-11 12:45:28

相关推荐

Android之解决java.lang.UnsatisfiedLinkError: dlopen failed: ××××.so: has text relocations

1、问题

项目导入别人的so,有个项目没问题,但是这个有问题,运行提示这个错误

java.lang.UnsatisfiedLinkError: dlopen failed: ××××.so: has text relocations

2、临时规避的解决办法

把现在的项目targetSdkVersion版本降低: such as,又24变为22,这样可以解决问题(没有源代码的情况下)

android:targetSdkVersion="22"

6.0之前只会产生一个警告,系统还是可以正常加载包含text relocations的共享库的,但从6.0起,即SDK Version>=23时,系统将会拒绝加载包含text relocations的共享库,同时输出错误Log,根本原因,是so动态链接库的代码并非PIC(Position independent code)

最好的办法是去修复源代码然后编译,我们这里调用别人的so,没办法了,如果是自己的so,在使用NDK编译so时配置Android.mk,增添PIC相关的配置项,这样编译出来的so文件将不再有text relocations的问题。具体配置如下:

LOCAL_LDFLAGS += -fPIC

如果觉得《Android之解决java.lang.UnsatisfiedLinkError: dlopen failed: ××××.so: has text relocations》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。