参考自: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文件没有编译进去