Ошибка инициализации исключения javacv

Я использую javacv для своего проекта, в моем проекте я хочу использовать функцию opencv_highui.cvLoadImage

Я добавил javacv.jar,javacpp.jar в папку libs и извлек все файлы в папке libs/armebi-v7a

но когда я запускаю свой проект, он дает мне ошибку исключения исключений, есть ли другие шаги, которые нужно выполнить для opencv

Пожалуйста, дайте мне предложение

вот мне код

import static com.googlecode.javacv.cpp.opencv_highgui.*;


import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        try {



            try {
                cvLoadImage("mnt/sdcard/make_machine_example1.png");
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

![][1] [1]: Я также прикрепил структуру своего проекта. Пожалуйста, предложите мне

Вот трассировка стека

    11-21 14:49:47.673: E/AndroidRuntime(2250): java.lang.ExceptionInInitializerError
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at com.example.demoproject.MainActivity.onCreate(MainActivity.java:23)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at android.app.Activity.performCreate(Activity.java:4465)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at android.app.ActivityThread.access$600(ActivityThread.java:127)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at android.os.Handler.dispatchMessage(Handler.java:99)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at android.os.Looper.loop(Looper.java:137)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at android.app.ActivityThread.main(ActivityThread.java:4448)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at java.lang.reflect.Method.invokeNative(Native Method)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at java.lang.reflect.Method.invoke(Method.java:511)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at dalvik.system.NativeStart.main(Native Method)
    11-21 14:49:47.673: E/AndroidRuntime(2250): Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1285]:  1418 cannot locate '_ZSt10unexpectedv'...
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at java.lang.Runtime.loadLibrary(Runtime.java:370)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at java.lang.System.loadLibrary(System.java:535)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:701)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at com.googlecode.javacpp.Loader.load(Loader.java:578)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at com.googlecode.javacpp.Loader.load(Loader.java:532)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at com.googlecode.javacv.cpp.opencv_highgui.<clinit>(opencv_highgui.java:79)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     ... 15 more
    11-21 14:49:47.673: E/AndroidRuntime(2250): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load gnustl_static: findLibrary returned null
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at java.lang.Runtime.loadLibrary(Runtime.java:365)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at java.lang.System.loadLibrary(System.java:535)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:701)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     at com.googlecode.javacpp.Loader.load(Loader.java:569)
    11-21 14:49:47.673: E/AndroidRuntime(2250):     ... 17 more

after adding that jars from build path i have following exception 

11-21 15:02:05.232: E/AndroidRuntime(17814): FATAL EXCEPTION: main
11-21 15:02:05.232: E/AndroidRuntime(17814): java.lang.ExceptionInInitializerError
11-21 15:02:05.232: E/AndroidRuntime(17814):    at com.example.demoproject.MainActivity.onCreate(MainActivity.java:23)
11-21 15:02:05.232: E/AndroidRuntime(17814):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-21 15:02:05.232: E/AndroidRuntime(17814):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
11-21 15:02:05.232: E/AndroidRuntime(17814):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
11-21 15:02:05.232: E/AndroidRuntime(17814):    at android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-21 15:02:05.232: E/AndroidRuntime(17814):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-21 15:02:05.232: E/AndroidRuntime(17814):    at android.os.Handler.dispatchMessage(Handler.java:99)
11-21 15:02:05.232: E/AndroidRuntime(17814):    at android.os.Looper.loop(Looper.java:123)
11-21 15:02:05.232: E/AndroidRuntime(17814):    at android.app.ActivityThread.main(ActivityThread.java:4627)
11-21 15:02:05.232: E/AndroidRuntime(17814):    at java.lang.reflect.Method.invokeNative(Native Method)
11-21 15:02:05.232: E/AndroidRuntime(17814):    at java.lang.reflect.Method.invoke(Method.java:521)
11-21 15:02:05.232: E/AndroidRuntime(17814):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-21 15:02:05.232: E/AndroidRuntime(17814):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-21 15:02:05.232: E/AndroidRuntime(17814):    at dalvik.system.NativeStart.main(Native Method)
11-21 15:02:05.232: E/AndroidRuntime(17814): Caused by: java.lang.NoSuchMethodError: java.util.Arrays.copyOf
11-21 15:02:05.232: E/AndroidRuntime(17814):    at com.googlecode.javacpp.Loader.findLibrary(Loader.java:646)
11-21 15:02:05.232: E/AndroidRuntime(17814):    at com.googlecode.javacpp.Loader.load(Loader.java:568)
11-21 15:02:05.232: E/AndroidRuntime(17814):    at com.googlecode.javacpp.Loader.load(Loader.java:532)
11-21 15:02:05.232: E/AndroidRuntime(17814):    at com.googlecode.javacv.cpp.opencv_highgui.<clinit>(opencv_highgui.java:79)
11-21 15:02:05.232: E/AndroidRuntime(17814):    ... 14 more

У вас есть идеи по этому поводу? Спасибо

2 ответа

Просто положи все *.so файлы ПРЯМО внутри ваших проектов libs/armeabi каталог. НЕ помещайте их в другие подкаталоги, такие как: libs/armeabi/com/googlecode/... так далее

Я ответил на ваш вопрос здесь. Возможно, вам нужно добавить.so файлы в папку armeabi, а не только armeabi-v7a. У меня была эта проблема, но наоборот, и я решил сделать это.

Кстати, как вы используете функцию? Помните, что вы должны поместить полное имя (также с каталогами), если вы не работаете с изображениями в одной папке. Я бы сказал, на всякий случай, даже в этом случае.

Я делаю это так, и это работает:

cvLoadImage("/storage/sdcard0/Download/testpicture.JPG");
Другие вопросы по тегам