Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我能';在jni文件夹中找不到opencv android sdk的Java_org_opencv_objdetect_CascadeClassifier?_Android_Opencv_Java Native Interface - Fatal编程技术网

我能';在jni文件夹中找不到opencv android sdk的Java_org_opencv_objdetect_CascadeClassifier?

我能';在jni文件夹中找不到opencv android sdk的Java_org_opencv_objdetect_CascadeClassifier?,android,opencv,java-native-interface,Android,Opencv,Java Native Interface,所有的源代码都发布了吗?我的opencv版本是2.4.9。我已经重新组织了我的项目,写 最后,我运行了人脸检测演示,得到了“未找到本机方法:org.opencv.objdetect.CascadeClassifier.CascadeClassifier_1:”类似这样的内容。我已经搜索了整个opencv源代码,但找不到Java\u org\u opencv\u objdetect\u CascadeClassifier\u CascadeClassifier\u 1或类似的东西。我不知道您提出的

所有的源代码都发布了吗?我的opencv版本是2.4.9。我已经重新组织了我的项目,写

最后,我运行了人脸检测演示,得到了“未找到本机方法:org.opencv.objdetect.CascadeClassifier.CascadeClassifier_1:”类似这样的内容。我已经搜索了整个opencv源代码,但找不到Java\u org\u opencv\u objdetect\u CascadeClassifier\u CascadeClassifier\u 1或类似的东西。

我不知道您提出的具体问题。但找不到本机方法是常见错误。找不到本机方法的可能原因如下

< C++ >函数名和java函数名中的类型不匹配。C++函数名必须在 Java_PackageName_classname_functionname格式

2.)在初始化opencv库之前调用函数


如果您再次无法找到,请分享您的代码

示例问题困扰了我很长时间

(当使用Android.mk在Android系统中编译时,我的apk运行良好,并且使用Android studio安装它(将源文件放入packages/apps/“apk name”))

我只是通过“\OpenCV android sdk\sdk\native\libs\arm64-v8a\libopencv_java3.so”重放“libopencv_java3.so”文件,因为这两个文件大小不同,所以这个问题就解决了


因此,这个问题应该是由“libopencv_java3.so”引起的。

谢谢!你说的两点我肯定是对的。现在我的问题是我找不到cv android SDK的本机代码,比如下面(来自Mat.java)://C++:Mat::Mat()私有静态本机long n_Mat();//C++:Mat::Mat(int行,int列,int类型)私有静态本机长n_Mat(int行,int列,int类型);//C++:Mat::Mat(大小,int类型)私有静态本机长n_Mat(双大小,双宽度,双大小,int类型);您是否在oncreate方法中使用mat对象初始化?请不要这样做。在onResume方法中调用了opencv库。之后,您可以调用mat对象,因为它使用opencv管理器中的opencv库。opencv管理器是不同的应用程序,必须从cv android sdk mat.java异步初始化您的应用程序,找不到这些本机方法的源代码://C++:Mat::Mat()私有静态本机long n_Mat();//C++:Mat::Mat(int行,int列,int类型)私有静态本机长n_Mat(int行,int列,int类型);//C++:Mat::Mat(大小,int类型)私有静态本机长n_Mat(双大小,双宽度,双大小,int类型);