JNI error: java.lang.UnsatisfiedLinkError: No implementation found
这个问题困扰了两天,出现这个问题的时候已经不是找不到库的问题了, dlopen肯定是过了。
这个是因为找不到需要调用的native方法,通过nm查看jni库的符号,发现jni库中的符号中的和代码中的不一样之后:
000000000000061c T video_ColorConverterJNI_convertYuv420spToYvu420sp
而我的函数定义是:
Java_video_ColorConverterJNI_convertYuv420spToYvu420sp
清干净环境,检查代码,然后重新编译就好了。
还有另外一种情况:
就是头文件里面的名字和CPP里面不一致的时候也会报这个错误,编译的时候没报错,居然在运行的时候才发现。这个是因为修改了包名后,没有改全的低级错误。
网友评论