Java imgproc模块中某些函数的OpenCV Android React本机未知异常

Java imgproc模块中某些函数的OpenCV Android React本机未知异常,java,android,react-native,opencv,Java,Android,React Native,Opencv,我正在尝试在用React Native编写的移动应用程序中使用OpenCV。现在我只关注Android部分。我使用Android版本的官方OpenCV。我添加了sdk,修改了我的MainApplication.java,并编写了一些包装方法,这些方法可以从React Native调用。到目前为止,它的编译工作与预期相符 现在的问题是,如果从某些OpenCV函数中获取未知异常,则其他函数可以正常工作。例如,当我从Imgproc模块调用blur()。当我尝试调用例如gaussianBlur()或Ca

我正在尝试在用React Native编写的移动应用程序中使用OpenCV。现在我只关注Android部分。我使用Android版本的官方OpenCV。我添加了sdk,修改了我的
MainApplication.java
,并编写了一些包装方法,这些方法可以从React Native调用。到目前为止,它的编译工作与预期相符

现在的问题是,如果从某些OpenCV函数中获取
未知异常
,则其他函数可以正常工作。例如,当我从
Imgproc
模块调用
blur()。当我尝试调用例如
gaussianBlur()
Canny()
函数时,我会从OpenCV中抛出一个
未知异常

我真的不知道问题出在哪里。sdk似乎链接正确,因为我可以编译应用程序并运行多个功能

我的设置:

  • archlinux的开发
  • 适用于Android的OpenCV 4.3.0
  • 反应本机0.62.2
  • 从终端使用gradle/react本机编译
  • 安卓10
尝试运行
Canny()
函数时出现的错误示例:

org.opencv.imgproc: imgproc::Canny_12() caught unknown exception
unknown exception
java.lang.Exception: unknown exception
    at org.opencv.imgproc.Imgproc.Canny_2(Native Method)
    at org.opencv.imgproc.Imgproc.Canny(Imgproc.java:2662)
    at com.rnopencv.RNOpenCvLibraryModule.cannyEdges(RNOpenCvLibraryModule.java:110)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372)
    at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:151)
    at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
    at android.os.Handler.handleCallback(Handler.java:883)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:27)
    at android.os.Looper.loop(Looper.java:214)
    at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:226)
    at java.lang.Thread.run(Thread.java:919)
调用以下包装器:

@ReactMethod
public void cannyEdges(字符串imagesbase64,int-treshold,Promise-Promise){
试一试{
//常数
尺寸模糊_尺寸=新尺寸(3,3);
int-KERNEL_-SIZE=3;
整数比=3;
int MAX_LOW_阈值=100;

int lowTreshold=(treshold上次,我遇到了这个问题,所以我选择了opencvapi而不是这个。
我希望这能对您有所帮助。

我遇到了同样的问题,不管我在java或jni层中如何称呼它。您找到解决方案了吗?不幸的是,没有找到。唯一的解决方案是返回到OpenCV 3.4.10您所说的OpenCV API是什么意思?