问题现象

Android无法正常启动,但是不影响native进程运行。主要影响zygote 初始化

pid: 8035, tid: 8035, name: main  >>> zygote <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Abort message: 'Error preloading public library libcommonsystem_jni.so: dlopen failed: library "libcommonsystem_jni.so" not found'r0  00000000  r1  00001f63  r2  00000006  r3  e979b830r4  00001f63  r5  00001f63  r6  ffe7337c  r7  0000010cr8  e69a9fc0  r9  0000002f  r10 00000071  r11 00000070ip  00000041  sp  ffe73368  lr  e9727105  pc  e971ee9201-01 08:46:09.307  8035  8035 I zygote  : option[46]=-Xfingerprint:qti/msmnile_gvmq/msmnile_gvmq:9/PQ1A.190105.004/ulixs11408240312:userdebug/test-keys
01-01 08:46:09.309  8035  8035 I zygote  : VerifyImage: /system/bin/patchoat --input-image-location=/system/framework/boot.art --output-image-directory=/data/dalvik-cache/arm --instruction-set=arm --verify
01-01 08:46:09.405  8035  8035 F libnativeloader: Error preloading public library libcommonsystem_jni.so: dlopen failed: library "libcommonsystem_jni.so" not found

问题分析

这个需要从Android 启动开始分析,Java 世界的开始源于Zygote, Zygote 在起来的时候回去初始化一些动态,这个工作是由libnativehelper 完成。 libnativehelper 会从/system/etc/public.libraries.txt中来加载需要的动态库,后面的从Zygote孵化出来的进程就不需要重新加载。
问题根本原因,之前有个静态Java库会去System.loadLibrary() libcommonsystem_jni.so. 所以将libcommonsystem_jni.so配置到白名单中,使其可以方便的调用。但是现在换成其他方案的时候,移除此库。但是忘记将其从白名单中移除导致zygote无法正常初始化成功。

关于libnativehelper 可以参考:libnativehelper

问题解决

将libcommonsystem_jni.so 从 public.libraries.android.txt 中删除。文件位置如下:

/system/core/rootdir/etc/public.libraries.android.txt

参考

Android N 公共so库怎么定义呢?

libnativehelper 加载库失败相关推荐

  1. android 图片加载库 Glide 的使用介绍

    一:简介 在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载库,作者是bumptech.这个库被广泛的运用在google的开源项目中,包括2014年google I/O大会 ...

  2. linux dlopen 内存,Linux下加载库的有关问题(dlopenm, dlsym)

    Linux下加载库的问题(dlopenm, dlsym) 如题, 程序中发现load库成功,但是加载函数的时候报错: undefined symbol functionname 是很简单的一个东西,因 ...

  3. Compose-jb图片加载库load-the-image,适用于KMM Compose desktop桌面端(Windows,Linux,MacOs)

    前言 Android平台上有很多优秀的图片加载框架,比如Glide,Picasso,Fresco 而Compose-jetpack上的图片加载框架有Coil 但Compose-jb上却暂时没有图片加载 ...

  4. y-image: web端图片加载库

    y-image web端图片加载库 - 根据不同状态(加载中,成功, 失败),加载不同图片 效果 安装 1. CDN引入 <script src="https://cdn.jsdeli ...

  5. Android图片加载库:最全面解析Glide用法

    目录 1. 简介 介绍:Glide,是Android中一个图片加载开源库 Google的开源项目 主要作用:实现图片加载 2. 功能特点 2.1 功能列表 从上面可以看出,Glide不仅实现了图片异步 ...

  6. 谷歌推荐的Android图片加载库(Glide)介绍

    本文出自:http://blog.csdn.net/u011733020 原      文:https://inthecheesefactory.com/blog/get-to-know-glide- ...

  7. Android图片加载库—Picasso一个强大的图像下载和缓存库

    介绍 GitHub源码 点击查看 Picasso是一款强大的图片下载和缓存开源软件,只能在Android平台上使用,由Square开发.使用Picasso可以添加一些必须的特性和视觉效果到Androi ...

  8. (原创)详解Glide图片加载库常用方法

    Glide作为安卓开发常用的图片加载库,有许多实用而且强大的功能,那么,今天就来总结一番,这次把比较常见的都写出来,但并不是全部哦. 在介绍之前,先来说说什么是Glide吧: 在泰国举行的谷歌开发者论 ...

  9. Google推荐图片加载库Glide使用总结

    在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫Glide的图片加载库,作者是bumptech.这个库被广泛的运用在google的开源项目中,包括2014年google I/O大会上发布的官方a ...

最新文章

  1. watchOS 5 新特性:继续发力运动与健身
  2. 长期价值三重进阶,同程艺龙加速“破局”OTA
  3. springboot controller 分页查询_Spring Boot实战分页查询附近的人:Redis+GeoHash+Lua
  4. 进击的 JavaScript(六) 之 this
  5. 捕获计算机屏幕++方法,如何在Windows 10计算机上录制屏幕以及如何捕获计算机的音频...
  6. SAP Spartacus pagefold学习笔记
  7. Supercomputer 解题报告
  8. excel批量插入 配置yml
  9. 一张图看懂阿里云网络产品[二] 专有网络VPC
  10. mysql 5.6安装图解 linux_Windows下MySQL 5.6安装及配置详细图解
  11. Java 质数输出的经典算法题面试可以用
  12. 【NLP】揭秘马尔可夫模型神秘面纱系列文章(五)
  13. js 判断是不是数组
  14. 二极管 三极管 mos管
  15. 刘宇辰java_2009届本科优秀毕业设计论文评选结果-北京科技大学-馆档网.doc
  16. 硬盘sata供电不启动,必须用大4pin转sata的情况
  17. python 节气_Python开源日志01:pyGregorian2LunarCalendar公历农历转换、阳历阴历转换、二十四节气计算...
  18. Python 字符串str详解(超详细)
  19. Chloe.Orm多表连接查询 (二)
  20. 污水处理设备:生物技术如何处理畜禽养殖污水?

热门文章

  1. Ubuntu安装repo
  2. 基于AIC评价指标的逐步回归Python语言实现
  3. 一元二次方程虚根求法java_请问怎么用C语言求一元二次方程的虚根
  4. 地铁收费系统课程设计总结
  5. R语言画图/绘图/作图2
  6. Python短链接生成、长链接还原,就是这么简单!
  7. 史上最全网络通讯(IIOT、工业控制、5G、区块链)协议全景图
  8. 【压缩感知合集8】MP算法(算法实现、收敛讨论以及问题分析)
  9. android点击展开全文,Android显示全文折叠控件使用方法详解
  10. 位运算常用技巧分析汇总(算法进阶)