美文网首页
记一次native库命名空间引用的问题

记一次native库命名空间引用的问题

作者: 珍惜注意力 | 来源:发表于2022-12-06 14:30 被阅读0次

部分报错信息如下:

library "/system/lib64/libNlscanCamera.so" ("/system/lib64/libNlscanCamera.so") needed or dlopened by "/data/app/~~efM1mNjqWZAgQVze7nFDdw==/com.kte.pda.scan-G_DHNq5ejn431u27KB22hg==/lib/arm64/libNlscanHostDecodeJni.so" is not accessible for the namespace: [name="classloader-namespace", ld_library_paths="", default_library_paths="/data/app/~~efM1mNjqWZAgQVze7nFDdw==/com.kte.pda.scan-G_DHNq5ejn431u27KB22hg==/lib/arm64:/data/app/~~efM1mNjqWZAgQVze7nFDdw==/com.kte.pda.scan-G_DHNq5ejn431u27KB22hg==/base.apk!/lib/arm64-v8a", permitted_paths="/data:/mnt/expand:/data/data/com.kte.pda.scan"]

从该报错能得到的信息是:

无法链接到libNlscanCamera.so(该库在/system/lib64路径是存在的),提示是该namespace 不能访问到该库

经过排查发现,是app打包的libNlscanHostDecodeJni.so其实在系统(/system/lib64)是已经存在的,app再次引入该库所在的命名空间是访问不了/system/lib64下的库的,除非是该库配置了为公开库(具体可以在/etc/public.library.txt中配置,这是android高版本之后的一个机制)

最后是打包的时候不把so库打包进去,直接使用系统中的库(应该是系统中对native库也是做了签名或者权限之类的访问规则)

相关文章

  • 记一次native库命名空间引用的问题

    部分报错信息如下: library "/system/lib64/libNlscanCamera.so" ("/s...

  • ADO.net链接数据库第一天

    引用命名空间: System.Data.Sqlclient命名空间 链接数据库 connection桥梁搭建与数据...

  • JNI基础 -- C++基础知识(命名空间)

    命名空间 因为在C++中没有包的概念,为了解决重名问题,就有了命名空间的概念,用法很简单: 引用和指针 引用更为规...

  • Swift基础-06(构造函数)

    1.关于命名空间 Objective-C 没有命名空间的,在应用开发时,所有的代码和引用的静态库最终都会被编译到同...

  • Swift中的命名空间

    命名空间 Objective-C一个一直以来令人诟病的地方就是没有命名空间,在应用开发时,所有的代码和引用的静态库...

  • Hbase 查询语句

    进入HBase数据库 HBase帮助命令: 命名空间 列出所有命名空间 新建命名空间 删除命名空间 该命名空间必须...

  • Unity读取Excel文件

    首先导入Excel.dll和ICSharpCode.SharpZipLib.dll两个动态库文件 引用命名空间 u...

  • swift中的命名空间及动态加载类

    1.何为命名空间 OC中没有命名空间的概念,在进行应用开发时,所有的代码和引用的静态库最终会被编译到同一个域和二进...

  • 2019-01-15

    一、.NET基础概念《引用和命名空间》 1.添加引用:添加程序集 2.导入命名空间:(快捷键:shift+alt+...

  • 使用Dapper连接Oracle数据库遇到的坑

    1.引用组件的命名空间 安装 Dapper 后,由于需要连接 Oracle 数据库,因此需要引入必要的连接组件,在...

网友评论

      本文标题:记一次native库命名空间引用的问题

      本文链接:https://www.haomeiwen.com/subject/lftshftx.html