iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >android app调用so 报错 dlopen failed: library “libnativehelper.so“ not found解决办法
  • 570
分享到

android app调用so 报错 dlopen failed: library “libnativehelper.so“ not found解决办法

androidandroidstudio 2023-09-13 08:09:18 570人浏览 泡泡鱼
摘要

一、问题现象 Android NDK开发过程中,APP调用so库出现如下问题 二、问题原因 主要原因是Google在N上对.so库的加载进行了限制,限制了so库指从部分指定的路径进行加载,不在这个路径的so提示  java.lang.U

一、问题现象

Android NDK开发过程中,APP调用so库出现如下问题

二、问题原因

主要原因是Google在N上对.so库的加载进行了限制,限制了so库指从部分指定的路径进行加载,不在这个路径的so提示 
java.lang.UnsatisfiedLinkError: dlopen failed: library “xxx.so” not found 或 
java.lang.UnsatisfiedLinkError: dlopen failed: library “/vendor/lib64/xxx.so” needed or dlopened by “/system/lib64/libnativeloader.so” is not accessible for the namespace “classloader-namespace” 或 其他异常错误提示。

N上对so库加载的搜索路径方式为ld_library_path, runtime path, permit path,不在这个搜索路径下则加载失败。从代码层面看,主要是类加载器ClassLoader的相关处理, 

​//code1: (loadedApk.java getClassLoader()) check sdk version // DO NOT SHIP: this is a workaround for apps loading native libraries // provided by 3rd party apps using absolute path instead of corresponding // classloader; see Http://b/26954419 for example. if (mApplicationInfo.targetSdkVersion <= 23) { libraryPermittedPath += File.pathSeparator + “/data/app”; }//Code2: (loadedApk.java getClassLoader()) N add a new PermittedPath String libraryPermittedPath = mDataDir;//Code3: (native_loader.cpp) use the new namespace rule with search path: ld_library_path, //runtime path, permit path.​

三、解决办法

将自己的so加入到允许路径的白名单里面,具体操作为,如果不改代码实现,则导出设备的/vendor/etc/public.libraries.txt 或/etc/public.libraries.txt文件,将so名字添加进去,在push到设备,重启即可。

 

来源地址:https://blog.csdn.net/BersonKing/article/details/130124071

--结束END--

本文标题: android app调用so 报错 dlopen failed: library “libnativehelper.so“ not found解决办法

本文链接: https://www.lsjlt.com/news/405663.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作