安卓 jni 开发错误 UnsatisfiedLinkError: Native method not found

jni 开发的坑挺多的,今天遇到好多个,现在这个是这样的:

1
UnsatisfiedLinkError: Native method not found

很明显是因为 native 方法找不到,google 下发现该错误出现频率还蛮高的,基本有两种:

  • so 文件找不到

这个就需要配合手机 cpu 类型和 so 类型服用,仔细查看去吧,问题不大的。

  • native 方法名有误

我就是犯了这个错误,涉及 jni 开发最基本的知识点:

C语言方法命名规则 :

1
Java_完整包名类名_方法名(JNIEnv *env, jobject thiz)  //注意完整的类名包名中包名的点要用 _ 代替;

参数介绍 : C语言方法中有两个重要的参数, JNIEnv *env, jobject thiz ;

  1. JNIEnv 参数 : 该参数代表Java环境, 通过这个环境可以调用Java中的方法;
  2. jobject 参数 : 该参数代表调用jni方法的类;

好了,原来,我是调整了包名,而这个 native 方法名没有改,导致该错误的发生。

还是那句话,用心一点,用力一点,你会做的更好,加油吧,骚年!

分享是一种美德,更是一种生活方式!!

 

来自:http://jp1017.github.io/2016/03/22/%E5%AE%89%E5%8D%93-jni-%E5%BC%80%E5%8F%91%E9%94%99%E8%AF%AF-UnsatisfiedLinkError-Native-method-not-found/

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论