couldn‘t find “libmmkv.so“ android8.1.0 Nexus 5X

这篇具有很好参考价值的文章主要介绍了couldn‘t find “libmmkv.so“ android8.1.0 Nexus 5X。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们的应用一直没有奔溃,但是在某几款设备可能存在mmkv的报错。
研究了很久,一方面是因为mmkv团队也已经不管这个事情,从他的issue来看,每次有人提到这个,他要么就不予理睬,给出这个并非库维护者需要干的事情,要么就说你去找google。
抛开那种确实是集成库的开发者的问题之后,事实99%都能用的情况后,那么,还存在于某个机型,比如我这里也遇到的android8.1.0 Nexus 5X,也会存在找不到库的情况。

首先mmkv库新版已经不支持armeabi。
解决方案有多种:

  1. https://blog.csdn.net/xiaobaaidaba123/article/details/127250141
    方案1: app 的build.gradle 检查 android-buildTypes 下的ndk abiFilters
    ndk {
    abiFilters “armeabi”
    }
    改为
    ndk {
    abiFilters “armeabi-v7a”
    }
    armeabi-v7a 可以向下兼容 armeabi
    方案2: 如果项目有些so 只有 armeabi 架构无法升级到 v7a 的话,可以 通过 mmkv maven 依赖的aar 包找到 armeabi-v7a 的 so, 把 so 放到项目 armeabi 目录,abiFilters 可以依旧是 “armeabi”。

从他的方案来看,只写了一个abiFilters,说明他是专用的机器。也难怪别人回复并不能解决。我推测可以参考的是,拷贝和全部写上abiFilters,目前没有尝试。

  1. https://my.oschina.net/vivotech/blog/5129118
    这里是vivo团队,提到的一个解决方案,重链接。但是没有给出具体的代码。后续有空再行翻阅。

  2. https://github.com/Tencent/MMKV/wiki/android_advance_cn#%E8%87%AA%E5%AE%9A%E4%B9%89-library-loader
    https://github.com/KeepSafe/ReLinker
    官方和relinker,都提到了在android6.0以下,存在系统层面的loadLib方法不完善的问题,在6.0之上是好的。
    但是显然,从relinker的issue和我这里,都可以看到8.1的nexus5x仍然出现了。
    从这个角度,只能推测,可能这些手机解压库可能导致了丢失或者目录结构不正常的问题。
    那么解决方案代码改进为:

    	MMKV.initialize(app) --->
    
    	 //start 尝试: 通过找到一个自行加载
        // 二次保护来解决Mmkv可能在Nexus5X 8.1的crash问题
        try {
            MMKV.initialize(app)
        } catch (e:Exception) {
            e.printStackTrace()
            try {
                val dir: String = app.filesDir.absolutePath + "/mmkv"
                MMKV.initialize(app, dir) { libName -> ReLinker.loadLibrary(app, libName) }
            } catch (e2:Exception) {
                e2.printStackTrace()
            }
        }
        //end
    

    相当于死马当活马医,传统的代码crash了,抓住,使用relinker的方案再行load库,大不了再crash一次。

后续我会继续跟踪和复现,再行修改。文章来源地址https://www.toymoban.com/news/detail-829148.html

到了这里,关于couldn‘t find “libmmkv.so“ android8.1.0 Nexus 5X的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • uiautomatorViewer无法获取Android8.0手机屏幕截图的解决方案

    uiautomatorViewer无法获取Android8.0手机屏幕截图的解决方案

    做APP UI自动化的时候,会碰到用uiautomatorViewer在Android 8.0及以上版本的手机上,无法获取到手机屏幕截图,无法获取元素定位信息的问题,会有以下的报 在低版本的Android手机上,则没有这个问题,可以顺利截图,但是现在手机的版本通常都不会低于Android8.0。   uiautomatorViewe

    2024年02月15日
    浏览(14)
  • 【git问题】couldn‘t find remote ref

    使用 git pull 遇到错误 “Couldn’t find remote ref xxx” 是怎么解决? git 给你的提示是: 没有找到这个远程的分支 解决的方法是: 查看自己的分支名是不是写错了, 为了避免微小的错误瞒过眼睛, 你可以查看当前分支然后复制分支名, 重新执行一下 如果你确定不是自己写错了

    2024年02月11日
    浏览(26)
  • error while loading shared libraries: libpython3.9.so.1.0

    意思是在 u s r / l i b usr/lib u sr / l ib 等等默认文件夹中找不到 l i b p y t h o n 3.9. s o . 1.0 libpython3.9.so.1.0 l ib p y t h o n 3.9. so .1.0 ,只要把搜索路径加上 l i b p y t h o n 3.9. s o . 1.0 libpython3.9.so.1.0 l ib p y t h o n 3.9. so .1.0 所在文件夹的位置即可。可以用 w h i c h    p y t h o n which;pyt

    2024年02月07日
    浏览(10)
  • 踩坑:gitee报错fatal: Couldn‘t find remote ref master。

    踩坑:gitee报错fatal: Couldn‘t find remote ref master。

    在通过vscode提交代码到远程仓库的时候,报了这个错:fatal: Couldn\\\'t find remote ref master。 然后,我在网上找了超级多方法,基本都是检查仓库配置,我贴一下,看大家是否需要: 1.检查本地GIT的配置 使用以上命令来检查本地的用户名和邮箱是否填写正确 2.检查远程仓库配置 如

    2024年02月11日
    浏览(18)
  • Git error:‘fatal: Couldn‘t find remote ref master‘

    Git error:‘fatal: Couldn‘t find remote ref master‘

    如果出现该错误提示,可能是因为使用了旧命令: master现在被认为是有种族歧视的,github将其换成了 main ,所以现在使用pull可以写为: 如需要将已有repos的 master 换为 main ,可依照以下步骤: 1-重命名本地分支: 2-重命名远程分支 3-删除远程分支 master 4-告知团队中的其他人

    2024年02月09日
    浏览(16)
  • Error: Couldn‘t find preset “es2015“ relative to directory

    vue引入element-ui,运行时报了这个错误 按照element-ui中的步骤 把.babelrc 文件内容从 更改为了 然后运行时就报了这个问题 解决方案: 安装es2015 工具

    2024年02月11日
    浏览(8)
  • ros编译正常,生成可执行文件无法找到的解决方法Couldn‘t find executable named 。。

    ros编译正常,生成可执行文件无法找到的解决方法Couldn‘t find executable named 。。

    最近初学ros,出现了ros编译正常,生成可执行文件正常,但是无法用rosrun命令执行的情况。  可以看出这里的编译是没有问题的  但是电脑找不到可执行文件,我在.bashrc文件里面已经source了 cmakelists.txt我也配置完了catkin_package,add_executable,target_link_libraries,声明的顺序也没有什

    2024年02月12日
    浏览(13)
  • 使用Git时 出现couldn‘t find remote ref-allow-unrelated-histories的解决办法

    使用Git时 出现couldn‘t find remote ref-allow-unrelated-histories的解决办法

    当执行git中的“git pull origin master –allow-unrelated-histories”命令时,会出现“ couldn’t find remote ref –allow-unrelated-histories”的错误, 可以简单理解为我们的远程仓库与本地仓库的内容不对等造成的。 特别容易发生在 我们新建了一个文件夹,往git仓库中上传资料的ing况下,如下

    2024年02月11日
    浏览(8)
  • 解决Git报错fatal: couldn‘t find remote ref –-allow-unrelated-histories 的解决办法

    解决Git报错fatal: couldn‘t find remote ref –-allow-unrelated-histories 的解决办法

    当执行git中的“git pull origin master –allow-unrelated-histories”命令时, 如果出现 fatal: couldn\\\'t find remote ref –-allow-unrelated-histories 的错误,输入如下命令即可解决: git pull --rebase origin master git push origin master 点赞 -收藏-关注-便于以后复习和收到最新内容 有其他问题在评论区讨论-或

    2024年02月13日
    浏览(14)
  • 解决raise FileNotFoundError(f“Couldn’t find any class folder in {directory}.“) FileNotFoundError: Coul

    解决raise FileNotFoundError(f“Couldn’t find any class folder in {directory}.“) FileNotFoundError: Coul

    在用pycharm运行深度神经网络加载数据时,发现报错 Traceback (most recent call last): File “D:/PyCharmWorkPlace/graduate_project/lsgan/main.py”, line 16, in class LSGAN: File “D:/PyCharmWorkPlace/graduate_project/lsgan/main.py”, line 125, in LSGAN dataset = dset.ImageFolder(root=dataroot, File “D:welcomeminicondaenvstensorflowl

    2024年02月07日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包