so文件编译生成后,运行时,有时候会遇到java.lang.UnsatisfiedLinkError: Native method not found问题,有可能是以下三种因素:
一、Jni方法头部大小写问题
在C++中,方法名:Java_com_XXX,而不是java_com_XXX。建议直接从生成的.h头文件直接复制方法名到C或者C++文件中。
二、C++文件问题
如果是C++文件(.cpp或者.cc),要使用extern "C" { } 把本地方法括进去。
三、往Jni方法中传值问题
如,调用native方法sendSomeThing(Object object),如果传入的object为null,有可能会报上面错误。
本文深入探讨了在Java程序中使用JNI方法时,遇到UnsatisfiedLinkError错误的原因及解决方案。主要涉及三种常见问题:方法头部大小写不一致、C++文件未正确使用externC{}
1万+

被折叠的 条评论
为什么被折叠?



