2017-01-03 10 views
2

Использование openCVLibrary320 для Android я получаю в моем проекте Ошибка:Нет реализации найдено Осторожные на Android <6

W/dalvikvm: No implementation found for native Lorg/opencv/imgproc/Imgproc;.Canny_2:(JJDDIZ)V 
W/dalvikvm: threadid=12: thread exiting with uncaught exception (group=0x9cd7fb20) 
E/AndroidRuntime: FATAL EXCEPTION: Thread-68 
       Process: hantke.niklas.mnotes, PID: 2144 
       java.lang.UnsatisfiedLinkError: Native method not found: org.opencv.imgproc.Imgproc.Canny_2:(JJDDIZ)V 
        at org.opencv.imgproc.Imgproc.Canny_2(Native Method) 
        at org.opencv.imgproc.Imgproc.Canny(Imgproc.java:1029) 
        at hantke.niklas.mnotes.MainActivity.detectStaffLines(MainActivity.java:121) 
        at hantke.niklas.mnotes.MainActivity.onCameraFrame(MainActivity.java:173) 
        at org.opencv.android.CameraBridgeViewBase.deliverAndDrawFrame(CameraBridgeViewBase.java:392) 
        at org.opencv.android.JavaCameraView$CameraWorker.run(JavaCameraView.java:352) 
        at java.lang.Thread.run(Thread.java:841) 

Это первый раз, когда я называю метод Осторожные, но заранее я называю cvtColor и equalizeHist без ошибок ,

Отлично работает на эмуляторе API 25, но не работает ни на API 19 emu, ни на Android-телефоне с Android 5.1. Новейшая версия менеджера openCV в комплекте с SDK 3.20 установлена ​​на каждом эмуляторе и телефоне

+1

Canny дает ту же ошибку на моем Android 6.0.1 API 23 Samsung SM-T800, поэтому проблема связана с Android 6. – rics

ответ

0

Я нашел свою ошибку.

Проблема заключалась в инициализации OpenCV: я должен был написать:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_2_0, this, mLoaderCallback); 
} 

вместо

OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_2, this, mLoaderCallback); 

, поскольку я использую версию 3.2.0. Странно, однако, что он работал на эмулятор Android 6.