Android App引用vendor编写的jni动态库

        简单描述一下,就是我自己基于FastDDS写了一个Jni的so,然后编写了jar包引用该so,最后写了一个Android的测试apk使用jar包,调用jni中的接口去创建Participant,Subscriber等。

        实际将jni的so放到 /system_ext/lib64,将jar包放到 /system/framework后,安装测试Apk,运行的时候报错,提示无法加载jni动态库:

AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: library "/system_ext/lib64/dds_lcb_jni.so" needed or dlopened by "/apex/com.android.art/lib64/libnativeloader.so" is not accessible for the namespace "classloader-namespace"

         经过DS查询,找到错误原因,是需要将jni动态库加到公共库列表文件中,列表文件的位置在

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

        将so的文件名添加到文件末尾,然后打包编译,烧写镜像后,可以在设备的/system/etc目录下确认public.libraries.txt文件中是否修改成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值