Android ndk 之二

来源:互联网 发布:小学生题目解答软件 编辑:程序博客网 时间:2024/04/29 22:45

http://bbs.csdn.net/topics/370036549

http://blog.sina.com.cn/s/blog_602f877001014ptu.html

 http://bbs.csdn.net/topics/370036549

 借鉴如上。下面上自己的例子

在你的so库里面定义的方法需要跟你java工程中的包类名一致才行的。
例如你在so库中定义的native方法为:
jstring
Java_com_example_test_hellojni_HelloJni_stringFromJNI( JNIEnv* env,
                                                  jobject thiz )
则你需要定义一个HelloJni的类,包名为com.example.test.hellojni,然后在HelloJni类中定义native方法tringFromJNI。这样都会找到相应的函数。
如果你希望so库中的方法跟包/类名不相关,好像需要自己重写NDK的一些方法的,,,

在你的.so里stringFromJNI原型是怎么样的?
我的理解是
比如如果是这样的xxx_xxx_xxx_stringFromJNI()
那么你的JAVA工程里,应该有xxx_xxx这个Packeage,Packeage中有xxx这个类,类中调用

 

ps; 要想解决问题,必须要清楚定位问题,找到问题,不能似是而非,不然会越改越乱,没头苍蝇。

0 0