2013-03-12 61 views
1

我試圖使用的OpenCV在Androidjavacv爲Android

我創建了Android項目,增加javacv.jariavacpp.jar到構建路徑,創造了lib文件夾和文件*.so從複製到javacv-arm.jarlibs/armeabi

全部jar & *.so文件是版本2.4.2。

當我運行該應用程序時,我創建了一個測試按鈕。當點擊我打電話這一行:

IplImage image = cvLoadImage("file:///android_asset//"+"pic1.jpg"); 

,並得到下列崩潰

03-12 19:22:12.189: E/AndroidRuntime(4524): FATAL EXCEPTION: main 
03-12 19:22:12.189: E/AndroidRuntime(4524): java.lang.ExceptionInInitializerError 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at com.myapp.MainActivity.runTest(MainActivity.java:260) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at com.myapp.MainActivity$3.onClick(MainActivity.java:174) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at android.view.View.performClick(View.java:4084) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at android.view.View$PerformClick.run(View.java:16966) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at android.os.Handler.handleCallback(Handler.java:615) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at android.os.Handler.dispatchMessage(Handler.java:92) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at android.os.Looper.loop(Looper.java:137) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at android.app.ActivityThread.main(ActivityThread.java:4745) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at java.lang.reflect.Method.invokeNative(Native Method) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at java.lang.reflect.Method.invoke(Method.java:511) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at dalvik.system.NativeStart.main(Native Method) 
03-12 19:22:12.189: E/AndroidRuntime(4524): Caused by: java.lang.ExceptionInInitializerError 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at java.lang.Class.classForName(Native Method) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at java.lang.Class.forName(Class.java:217) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at com.googlecode.javacpp.Loader.load(Loader.java:334) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at com.googlecode.javacv.cpp.opencv_highgui.<clinit>(opencv_highgui.java:85) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  ... 13 more 
03-12 19:22:12.189: E/AndroidRuntime(4524): Caused by: java.lang.ExceptionInInitializerError 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at java.lang.Class.classForName(Native Method) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at java.lang.Class.forName(Class.java:217) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at com.googlecode.javacpp.Loader.load(Loader.java:334) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at com.googlecode.javacv.cpp.opencv_imgproc.<clinit>(opencv_imgproc.java:96) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  ... 17 more 
03-12 19:22:12.189: E/AndroidRuntime(4524): Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: link_image[1891]: 124 could not load needed library 'libopencv_core.so' for 'libjniopencv_core.so' (load_library[1093]: Library 'libopencv_core.so' not found) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at java.lang.Runtime.loadLibrary(Runtime.java:370) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at java.lang.System.loadLibrary(System.java:535) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:444) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at com.googlecode.javacpp.Loader.load(Loader.java:368) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at com.googlecode.javacpp.Loader.load(Loader.java:315) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  at com.googlecode.javacv.cpp.opencv_core.<clinit>(opencv_core.java:131) 
03-12 19:22:12.189: E/AndroidRuntime(4524):  ... 21 more 
03-12 19:22:12.243: D/dalvikvm(4524): GC_CONCURRENT freed 2368K, 16% free 16864K/20039K, paused 12ms+3ms, total 50ms 

我失去libopencv_core.so?如果是這樣,我在哪裏可以找到它爲2.4.2版本構建的?

謝謝!

+0

你見過這個答案:http://stackoverflow.com/questions/10857301/unable-to-link-native-library-in-opencv- android-sample? 「LoadLibrary」部分? – Piotr 2013-03-12 22:48:23

+0

不,我會嘗試。但..我在哪裏可以找到libopencv_core.so? – ibm123 2013-03-13 11:33:40

回答

1

我相信你現在已經明白了。下載javacv-0.5-cppjars.zip,裏面提取opencv-2.4.5-android-arm.jar的內容。你會發現libopencv_core.so在那裏和其他幾個.so文件