문제

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;를하려고하면 끊지는 않지만 스티 처이 초기화되지 않기 때문에 다른 것을 할 수 없습니다.null로 초기화하려고하면 동일한 오류로 충돌이 발생합니다.

문제에 대한 아이디어가 있습니까?나는 잠시만 검색하고 모든 사람들이 그것을 사용하고 일하는 것처럼 보입니다.

도움이 되었습니까?

해결책 2

확인, 알았습니다.

문제는 opencv_stitching.so가 armeabi 폴더에만 있고 armeabi-V7A 하나에서 필요했습니다.스티커를 선언하고 초기화 할 수 없습니다.

다른 팁

exceptionInitializerError

은 정적 이니셜 라이저에서 예기치 않은 예외가 발생한 신호입니다.exceptionInInitializerError가 정적 변수에 대한 정적 초기화 프로그램 또는 이니셜 라이저의 평가 중에 예외가 발생했음을 나타냅니다.

나는

와 같은 일을 할 것입니다.
Stitcher stitcher;
{
    try {
        stitcher = Stitcher.createDefault(false);
    } catch (Throwable t) {
        t.printStackTrace();
        throw t;
    }
}
.

예외 추적에 의해 야기 된 에서 에있는 에있는 에 대한 정보가 있지 않은 경우 실제로 일어나는 일을 확인하십시오.

PS 때로는 오류가 잘못된 스레드 (예 : Android의 초기 버전에서 AsyncTask 클래스가 필요합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top