[英]ExceptionInInitializerError in Stitcher with JavaCV for Android
我在Android上使用以下代码通过JavaCV进行图像拼接:
public void ImageStitching() {
Stitcher stitcher = Stitcher.createDefault(false);
MatVector images = new MatVector(2);
images.put(0,cvLoadImage("sample1.png"));
images.put(1,cvLoadImage("sample2.png"));
IplImage result = new IplImage(null);
int status = stitcher.stitch(images,result);
if( status == Stitcher.OK )
{
cvSaveImage("result.png", result);
}
}
但是当我执行它时,应用程序崩溃了,日志显示了以下错误:
java.lang.ExceptionInInitializerError at ...
错误指向Stitcher初始化,即代码的第一行。 如果我尝试做Stitcher stitcher;
它不会中断,但由于订书机未初始化,因此我无能为力。 如果我尝试将其初始化为null
则会崩溃,并显示相同的错误。
对这个问题有任何想法吗? 我已经搜索了一段时间,所有的人都在使用它,它似乎起作用了。
ExceptionInInitializerError
表示在静态初始化程序中发生了意外的异常。 抛出ExceptionInInitializerError表示在评估静态初始化程序或静态变量的初始化程序期间发生了异常。
我会做类似的事情
Stitcher stitcher;
{
try {
stitcher = Stitcher.createDefault(false);
} catch (Throwable t) {
t.printStackTrace();
throw t;
}
}
看看到底发生了什么-除非你anready有在造成异常跟踪的子句信息。
当在错误的线程上初始化类时,PS有时会发生错误(例如,在Android的早期版本中,AsyncTask类需要在应用程序的主线程上进行显式初始化,否则将在工作线程上加载该类)。
好,我知道了。
问题是库opencv_stitching.so仅在armeabi文件夹中,而我需要在armeabi-v7a文件夹中。 不是,我可以声明拼接器并对其进行初始化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.