ExperfieviNItializerError与javacv for Android
-
26-12-2019 - |
题
我正在使用这个代码进行javacv在android上的图像拼写:
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 ...
.
和错误点到拼接启动,我的代码的第一行。如果我尝试做生成的,它不会破坏,但由于拼接器未初始化,我无法执行任何其他操作。如果我尝试将其初始化为具有相同错误的生成次崩溃。
对这个问题的任何了解?我一直在寻找一段时间,所有人都使用它,似乎工作。
解决方案 2
好的,我得到它。
问题是,库oencv_stecing.so只是在armabi和我需要的文件夹中,我需要在armabi-v7a一个。不是我可以声明拼接器并初始化它。
其他提示
ExperfipinitializerError
信号在静态初始化程序中发生了意外的异常。抛出异常ineptionInitializerError,以指示在评估静态初始化器或静态变量的初始化器期间发生异常。
我会做一些像
Stitcher stitcher;
{
try {
stitcher = Stitcher.createDefault(false);
} catch (Throwable t) {
t.printStackTrace();
throw t;
}
}
.
,看看真正发生的事情 - 除非你在例外跟踪的子句引起的中有那个信息。
ps有时会在错误的线程上初始化类时发生错误(例如,在Android的早期版本的Asnctask类中,否则在应用程序中加载此类的应用程序中的主线程中的明确初始化)。
不隶属于 StackOverflow