Pregunta

Estoy usando este código para la costura de la imagen con Javacv en 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);
    }
}

Pero cuando lo ejecuto, la aplicación se bloquea y el registro muestra el siguiente error:

java.lang.ExceptionInInitializerError at ...

y los puntos de error a la iniciativa de Stitcher, la primera línea de mi código.Si trato de hacer Stitcher stitcher;, no se rompe, pero no puedo hacer nada más, ya que no se inicializa el costcher.Si trato de inicializarlo en null, se bloquea con el mismo error.

¿Alguna idea sobre el problema?He estado buscando un rato y todas las personas usan eso y parece funcionar.

¿Fue útil?

Solución 2

OK, lo tengo.

El problema fue que la biblioteca openv_stitching.so fue solo en la carpeta Armeabi y necesitaba en el Armeabi-V7A.No puedo declarar el costcher e inicializarlo.

Otros consejos

ExceptioninInitializerError

Señales que se ha producido una excepción inesperada en un inicializador estático.Se lanza una excepciónininitializerError para indicar que se produjo una excepción durante la evaluación de un inicializador estático o el inicializador para una variable estática.

haría algo como

Stitcher stitcher;
{
    try {
        stitcher = Stitcher.createDefault(false);
    } catch (Throwable t) {
        t.printStackTrace();
        throw t;
    }
}

y vea lo que realmente sucede, a menos que tenga información sobre la información de causada por la cláusula de la excepción.

PS A veces, se producen errores cuando se inicializa una clase en el hilo incorrecto (por ejemplo, en versiones tempranas de Android, la clase Asintsk requiere la inicialización explícita en el hilo principal en una aplicación que de otra manera cargaría esta clase en un hilo de trabajador).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top