您的位置:首页 > 编程语言 > Java开发

java.lang.UnsatisfiedLinkError: Native method not found

2013-12-17 16:37 471 查看
参考自:http://blog.csdn.net/lilu_leo/article/details/10950047

http://www.eoeandroid.com/thread-60793-1-1.html

出现该错误的有以下可能性:

1.java文件里面没有载入so库

static
{
System.loadLibrary("XXX");
}
2.Jni方法头部大小写问题     
在C++中,方法名:Java_com_XXX,而不是java_com_XXX。建议直接从生成的.h头文件直接复制方法名到C或者C++文件中。

3.C++文件问题
        如果是C++文件(.cpp或者.cc),要使用extern "C" {   } 把本地方法括进去
4.往Jni方法中传值问题
       如,调用native方法sendSomeThing(Object object),如果传入的object为null,有可能会报上面错误
5.编译顺序不正确
     正常的操作顺序是 1
编辑c文件2 make生成so文件3 编译java文件

错误做法:先在java中添加了native方法,(这时候Eclipse给自动编译了)然后才编辑c,make,结果导致新版本的so文件没有编译进去
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐