在调用so时,app上会出现一个弹窗,警告"xxx.so has text relocations"。
错误的原因,官方文档上有说明:https://developer.android.com/about/versions/marshmallow/android-6.0-changes#behavior-runtime
在之前版本的 Android 上,如果您的应用请求系统加载包含文本重定位信息的共享库,系统会显示警告,但仍允许加载共享库。从此版本开始,如果您的应用的目标 SDK 版本为 23 或更高,则系统会拒绝加载该库。为帮助您检测库是否加载失败,您的应用应该记录 dlopen(3) 失败日志,并在日志中加入 dlerror(3) 调用返回的问题描述文本。要详细了解如何处理文本重定位,请参阅此指南。
官方也给出了解决方案:https://wiki.gentoo.org/wiki/Hardened/Textrels_Guide。
这里给出两个快速解决方案(其实并没有解决问题,治标不治本):
1,修改targetSdkVersion,把版本降低。
2,release包是不会弹的,只有debug包才会,把dubug包的debuggable修改为false,或者在AndroidMainfest.xml中直接进行设置。
网友评论