当前位置: 代码迷 >> Android >> Andriod中JNI调用C函数,依据JNI的规范封装的C函数,其它package就无法再使用了,对吗
  详细解决方案

Andriod中JNI调用C函数,依据JNI的规范封装的C函数,其它package就无法再使用了,对吗

热度:31   发布时间:2016-05-01 17:55:21.0
Andriod中JNI调用C函数,根据JNI的规范封装的C函数,其它package就无法再使用了,对吗?
请教,Andriod中通过JNI调用linux下的动态库里的C函数,根据JNI的规范封装后的C函数,其它package就无法再使用了,对吗?

因为函数名需要按照JNI的规范,例如
Java_com_test_TestHelloLib_printHello的命名对应后面在java代码中,package名字是com.test,类名是TestHelloLib,native函数名是printHello。

那么这样封装好的函数,NDK编译产生的库文件.so,就无法被其它andriod工程使用了,对吗?


------解决方案--------------------
楼主可以把jni调用都封装到一个单独的class里,以后直接就用这个类不就行了。
------解决方案--------------------
我觉得你可以看看,如何动态注册JNI,给个参考
http://blog.csdn.net/chenfeng0104/article/details/7088600
------解决方案--------------------
探讨

楼主可以把jni调用都封装到一个单独的class里,以后直接就用这个类不就行了。

------解决方案--------------------
可以使用动态注册的方式,这样的方式是可以的。
  相关解决方案