64位系统动态库debug之旅

前言

Android5.0系统(64位),开发的一个系统应用,声明了一个服务,进程名为system,调用armeabi-v7a的库时抛出了dlopen failed to load 32 bit instead of 64 bit library异常,并且系统重启。

Debug

dlopen failed to load 32 bit instead of 64 bit library异常时因为当前环境是64位,却打开的是32位的动态库。但是我的工程里面只有armeabi-v7a的库,不存在64位的库,所以运行环境应该是32位的,在stackoverflow上(下图)找到了线索。

图片.png

最后搜索到//www.greatytc.com/p/8686931d31f0 64位系统的system进程是64位的,所以不能用32位库,这个进程已崩溃系统就重启了。系统应用加载库的路径只能/system/lib和/system/lib64,其他的路径都不可以。

解决办法

1.修改进程名,不要轻易使用system进程名。
2.增加64位的库。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容