java - 奇怪的 java.lang.UnsatisfiedLinkError : Native method not found:

标签 java android opencv android-ndk

我正在使用 NDK+OpenCV 来开发应用程序。我有以下问题:

我将所有 native 方法放在 FoodRecgNativeLib.java 中,我想从文件中读取 opencv 矩阵:

//in FoodRecgNativeLib.java

public static void NativeLoadFile(String path, String tag, Mat result)
{
    loadsfile(path,tag,result.nativeObj);
    return;
}
public native static void loadsfile(String path, String tag, long addr);

//.h file
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class ca_uwo_csd_Threads_FoodRecgNativeLib */

#ifndef _Included_ca_uwo_csd_Threads_FoodRecgNativeLib
#define _Included_ca_uwo_csd_Threads_FoodRecgNativeLib
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT void JNICALL Java_ca_uwo_csd_Threads_FoodRecgNativeLib_loadsfile
(JNIEnv *, jclass, jstring, jstring, jlong);
#ifdef __cplusplus
}
#endif
#endif

//in .cpp file, .h file is included

JNIEXPORT void JNICALL Java_ca_uwo_csd_Threads_FoodRecgNativeLib_loadsfile
 (JNIEnv *env, jobject cls, jstring path, jstring tag, jlong result_addr)
{
    cv::FileStorage fs(jstring2str(env,path), FileStorage::READ);
    Mat& data = *(Mat*)result_addr;;
    fs[jstring2str(env,tag)] >> data;
}

谁能检查一下我的代码有什么问题吗?

最佳答案

Java_ca_uwo_csd_Threads_FoodRecgNativeLib_loadsfile 的声明和实现签名不匹配。将实现中的第二个参数类型从 jobject 更改为 jclass

关于java - 奇怪的 java.lang.UnsatisfiedLinkError : Native method not found:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25413547/

相关文章:

更新到 jre 8u66 后,JavaFX 场景样式表停止工作

java - 如何在 tycho 中引用 mockito?

c++ - 无法在 OpenCV 中创建/保存输出 avi 文件

python - 要与StereoBM一起使用,是否必须校准摄像机?

opencv - 在 OpenCV 中使用 imread() 加载图像时如何捕获损坏的 JPEG?

java - 当 XSD 元素没有定义类型(类型 ur-type)但 SOAP 响应中返回子类型时,Axis2 会失败?

java - 使用递归计算字符串中 hi 的出现次数

java - 重新连接套接字时重复接收消息

javascript - 如何在同一项目的android native和android phonegap中共享sqlite数据库

android - 在使用 Linkify 查找和设置文本内的链接时处理对 TextView 链接的点击