dlopen加载so动态库

麻美学姐 发布于 2016/02/18 17:57
阅读 1K+
收藏 0

NGINX社区官方微服务训练营,深入了解K8s网络,线上课程+专家答疑,立即加入>>>

一般的加载顺序是在程序的入口

System.loadLibrary("A");

但是由于有别的需求,不能够在Java来加载so库,想转到c++层加载

使用的

dlopen("libA.so", RTLD_LAZY)

但是加载完libA.so之后发现Java层调用libA.so里面的jni方法是调用不到的,并不知道是没有加载成功还是加载的方式不对或者不完整。

求助一下各位帮忙解答或者提供相关资料。

我这边也在解决中。

加载中
0
KevinJen
KevinJen
dlopen后要通过 dlsym对方法进行映射
KevinJen
KevinJen
回复 @麻美学姐 : 加油咯,我也不是搞android的
麻美学姐
麻美学姐
回复 @KevinJen : 感觉 好麻烦,里面有一百多个jni方法,还有好多的调用。要改到伤心落泪啊。
KevinJen
KevinJen
回复 @麻美学姐 : 手动加载动态链接库,都有映射,就是用System.loadLibrary("A");也要映射。
麻美学姐
麻美学姐
就是不能够说直接dlopen了之后,so里面的所有jni方法都能提供给java调用么?要一个个手动映射调用?
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部