2017-01-03 9 views
2

: 없음 구현되지 <내 프로젝트에서 오류 얻을 안드로이드 openCVLibrary320을 사용하여 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 5.1이있는 Android-Phone에서는 작동하지 않습니다. SDK 3.20에 번들 된 openCV 관리자의 최신 버전이 모든 에뮬레이터 및 전화에 설치됩니다.

+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); 
} 

대신 나는 버전 3.2.0을 사용하기 때문에

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

의. 이상하게도 Android 6 에뮬레이터에서 작동했습니다.