libnativehelper 加载库失败
问题现象
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 加载库失败相关推荐
- android 图片加载库 Glide 的使用介绍
一:简介 在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载库,作者是bumptech.这个库被广泛的运用在google的开源项目中,包括2014年google I/O大会 ...
- linux dlopen 内存,Linux下加载库的有关问题(dlopenm, dlsym)
Linux下加载库的问题(dlopenm, dlsym) 如题, 程序中发现load库成功,但是加载函数的时候报错: undefined symbol functionname 是很简单的一个东西,因 ...
- Compose-jb图片加载库load-the-image,适用于KMM Compose desktop桌面端(Windows,Linux,MacOs)
前言 Android平台上有很多优秀的图片加载框架,比如Glide,Picasso,Fresco 而Compose-jetpack上的图片加载框架有Coil 但Compose-jb上却暂时没有图片加载 ...
- y-image: web端图片加载库
y-image web端图片加载库 - 根据不同状态(加载中,成功, 失败),加载不同图片 效果 安装 1. CDN引入 <script src="https://cdn.jsdeli ...
- Android图片加载库:最全面解析Glide用法
目录 1. 简介 介绍:Glide,是Android中一个图片加载开源库 Google的开源项目 主要作用:实现图片加载 2. 功能特点 2.1 功能列表 从上面可以看出,Glide不仅实现了图片异步 ...
- 谷歌推荐的Android图片加载库(Glide)介绍
本文出自:http://blog.csdn.net/u011733020 原 文:https://inthecheesefactory.com/blog/get-to-know-glide- ...
- Android图片加载库—Picasso一个强大的图像下载和缓存库
介绍 GitHub源码 点击查看 Picasso是一款强大的图片下载和缓存开源软件,只能在Android平台上使用,由Square开发.使用Picasso可以添加一些必须的特性和视觉效果到Androi ...
- (原创)详解Glide图片加载库常用方法
Glide作为安卓开发常用的图片加载库,有许多实用而且强大的功能,那么,今天就来总结一番,这次把比较常见的都写出来,但并不是全部哦. 在介绍之前,先来说说什么是Glide吧: 在泰国举行的谷歌开发者论 ...
- Google推荐图片加载库Glide使用总结
在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫Glide的图片加载库,作者是bumptech.这个库被广泛的运用在google的开源项目中,包括2014年google I/O大会上发布的官方a ...
最新文章
- watchOS 5 新特性:继续发力运动与健身
- 长期价值三重进阶,同程艺龙加速“破局”OTA
- springboot controller 分页查询_Spring Boot实战分页查询附近的人:Redis+GeoHash+Lua
- 进击的 JavaScript(六) 之 this
- 捕获计算机屏幕++方法,如何在Windows 10计算机上录制屏幕以及如何捕获计算机的音频...
- SAP Spartacus pagefold学习笔记
- Supercomputer 解题报告
- excel批量插入 配置yml
- 一张图看懂阿里云网络产品[二] 专有网络VPC
- mysql 5.6安装图解 linux_Windows下MySQL 5.6安装及配置详细图解
- Java 质数输出的经典算法题面试可以用
- 【NLP】揭秘马尔可夫模型神秘面纱系列文章(五)
- js 判断是不是数组
- 二极管 三极管 mos管
- 刘宇辰java_2009届本科优秀毕业设计论文评选结果-北京科技大学-馆档网.doc
- 硬盘sata供电不启动,必须用大4pin转sata的情况
- python 节气_Python开源日志01:pyGregorian2LunarCalendar公历农历转换、阳历阴历转换、二十四节气计算...
- Python 字符串str详解(超详细)
- Chloe.Orm多表连接查询 (二)
- 污水处理设备:生物技术如何处理畜禽养殖污水?