在Android的system/lib目录下,有系统自带的一些动态库,如何可以使用这些库中已经定义好的函数呢?比如在libreference-ril.so中,有一个函数static void onRequest(),有没有什么方法可以在我通过jni写的C文件中调用这个函数呢?谢谢!
------解决方案--------------------
在android.mk文件中加入
LOCAL_LDLIBS:= 相应的库名
找到相应的.h文件,将文件在想调用onRequest的文件里,包含进这个.h文件
然后就可以调用了
------解决方案--------------------
android.mk
LOCAL_LDLIBS := -llog -lz 像这样-l加库名称
如果没头文件
看是否可以动态调用
例如:
void (*ucnv_convert)(const char *,const char *, char * , int32_t , const char *, int32_t,int32_t*)=0;
void* pDL = dlopen("/system/lib/libicuuc.so", RTLD_LAZY);
ucnv_convert = (void (*)(const char *, const char *, char * , int32_t , const char *, int32_t,int32_t*))dlsym(pDL, "ucnv_convert_44");
ucnv_convert 就可以当函数使用了
------解决方案--------------------
给LZ建议:不要用JNI过程与步骤太复杂,还容易出错。
可以使用JNA,我前几天刚问过这个问题,去看一下,很简单。
http://apps.hi.baidu.com/share/detail/31610125