在Android的system/lib目录下,有系统自带的一些动态库,如何可以使用这些库中已经定义好的函数呢?比如在libreference-ril.so中,有一个函数static void onRequest(),有没有什么方法可以在我通过jni写的C文件中调用这个函数呢?谢谢!

解决方案 »

  1.   

    在android.mk文件中加入
    LOCAL_LDLIBS:= 相应的库名找到相应的.h文件,将文件在想调用onRequest的文件里,包含进这个.h文件然后就可以调用了
      

  2.   

    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 就可以当函数使用了
      
      

  3.   

    给LZ建议:不要用JNI过程与步骤太复杂,还容易出错。
    可以使用JNA,我前几天刚问过这个问题,去看一下,很简单。
    http://apps.hi.baidu.com/share/detail/31610125
      

  4.   

    谢谢您的回复,特地了解了一下JNA技术,发现真的很实用