Android7.x找不到libsqlite.so 问题

问题:

最近公司新项目,集成融云IM时出现一问题,在低版本手机上连接融云服务器成功,但是在小米6手机上一直不显示回调,最后调试结果为:

java.lang.UnsatisfiedLinkError: dlopen failed: library "libsqlite.so" not found

最后从网上搜索结果显示,由于Android7.x执行更严格的安全检查,禁止使用系统目录的内容,一般某些聊天的SDK都依赖于libsqlite.so(环信、融云),不过由于这个包从来没有变化,使用的是系统默认提供的(/system/lib/)。在Android 6.x及以下的平台可以运行。所以如果希望在7.x以上版本,需要把系统目录的libsqlite.so拷贝出来,也放在自己app对应指令目录下。
以下列出两种解决方案:

解决方案:

第一种:

直接修改targetSdkVersion 小于24即可,关于targetSdkVersion 问题,这里要说明一下,如果你安装的手机版本低于targetSdkVersion ,那么运行的是你手机版本效果,如果你手机版本高于targetSdkVersion ,那么运行的就是targetSdkVersion 版本,所以修改targetSdkVersion 肯定是可以解决问题的。

第二种:

既然没有libsqlite.so文件找不到,那么我们添加一份即可,在对应的CPU类型下加载不同的so文件。libsqlite.so附件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章