2015-11-26 8 views
6

Android ADT का उपयोग कर स्थिर लोड करने की कोशिश कर रहा है, इसलिए इसे ऐप बिल्ड में शामिल किया गया है और उपयोगकर्ताओं को एंड्रॉइड प्लेस्टोर से ओपनसीवी प्रबंधक डाउनलोड करने की आवश्यकता नहीं है।एंड्रॉइड स्टेटिक प्रारंभिक ओपनसीवी 3.0 पुस्तकालय "opencv_java3"

उपयोग कर रहा हूँ openCV v3 (http://opencv.org/downloads.html)

स्तर पर सिर्फ OpenCV-Android-SDK \ नमूने \ चेहरे का पता लगाने में नमूने से एक के लिए स्थिर प्रारंभ जोड़ने की कोशिश कर।

मैं उदाहरण (http://docs.opencv.org/2.4/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html)

उदाहरण के बहुत सारे देखा का पालन किया है लेकिन अभी तक काम कर इसे प्राप्त करने के लिए कोई समाधान के साथ आते हैं। बहुत उम्मीद है कि कोई मदद करने में सक्षम हो सकता है।

मुझे लगता है कि libopencv_java3 के कारण हो सकता है। इसलिए libs/armeabi-v7a/ फ़ोल्डर में नहीं होने पर मैं इसे OpenCV-android-sdk\sdk\native\libs\armeabi-v7a से कॉपी और पेस्ट करता हूं, यह गायब हो जाता है। मेरा मानना ​​है कि यह एनएनडी सेटअप के तरीके से कुछ करने के लिए हो सकता है। बेशक यह मुद्दा कुछ अलग हो सकता है।

LogCat इस देता है:

11-26 16:36:33.647: D/OpenCV/StaticHelper(13993): Trying to load library opencv_java3 
11-26 16:36:33.647: D/OpenCV/StaticHelper(13993): Cannot load library "opencv_java3" 
11-26 16:36:33.647: W/System.err(13993): java.lang.UnsatisfiedLinkError: Couldn't load opencv_java3 from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/org.opencv.samples.facedetect-1.apk"],nativeLibraryDirectories=[/data/app-lib/org.opencv.samples.facedetect-1, /vendor/lib, /system/lib, /vendor/lib]]]: findLibrary returned null 
11-26 16:36:33.767: D/OpenCV/StaticHelper(13993): Trying to load library opencv_java3 
11-26 16:36:33.767: D/OpenCV/StaticHelper(13993): Cannot load library "opencv_java3" 
11-26 16:36:33.767: W/System.err(13993): java.lang.UnsatisfiedLinkError: Couldn't load opencv_java3 from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/org.opencv.samples.facedetect-1.apk"],nativeLibraryDirectories=[/data/app-lib/org.opencv.samples.facedetect-1, /vendor/lib, /system/lib, /vendor/lib]]]: findLibrary returned null 
+3

इसे ठीक करने के लिए प्रबंधित किया गया। इस टिप्पणी को आशा में पोस्ट कर रहा हूं कि यह एक ही मुद्दे के साथ अन्य लोगों की मदद कर सकता है। जेनी/एंड्रॉइड.एमके ने #OPENCV_INSTALL_MODULES से लाइन को बदल दिया: = OPENCV_INSTALL_MODULES को ओवरराइड करने के लिए: = इस पर libsencv_java3.so को libs/armeabi-v7a/libopencv_java3.so –

उत्तर

10

बैठाना कोई इस मुद्दे भर आता है और AndroidStudio उपयोग करता है। आप अपने OpenCvProject/openCVLibrary310/स्रोत/मुख्य में फ़ोल्डर OpenCV-android-sdk \ sdk \ native \ libs

को कॉपी करके इसे ठीक कर सकते हैं और इसे jniLibs में बदल सकते हैं। ताकि अंतिम संरचना इस तरह दिखता है: OpenCvProject/openCVLibrary310/स्रोत/मुख्य/jniLibs/ enter image description here

आप पहले से ही AndroidStudio से बाहर अपनी परियोजना डिवाइस से पहले इसे हटाने के लिए सुनिश्चित करें कि भाग गया है। अन्यथा AndroidStudio इसे पुन: नियोजित नहीं कर सकता है और इसके कारण libs पर प्रतिलिपि नहीं हो सकता है।

यदि आप libs को अपनी वास्तविक प्रोजेक्ट में कॉपी करते हैं और OpenCVLibrary फ़ोल्डर में नहीं तो यह भी काम कर सकता है लेकिन मैंने कोशिश नहीं की।

+0

में जोड़ा गया है जिसके परिणामस्वरूप यह 90+ एमबी एपीके फ़ाइल है। _Possibly क्योंकि यह सभी platforms_ के लिए संकलित? –

+0

हां, [splits] (https://stackoverflow.com/a/42019169/3125070) को क्रम में जोड़ने की आवश्यकता है –

1

सुनिश्चित करें कि आप शामिल करने से पहले करने के लिए "ऑन" सेट मॉड्यूल स्थापित करने के लिए विकल्प होता है Opencv.mk:

OPENCV_INSTALL_MODULES:=on 
include ${OPENCV_ANDROID_SDK}/${ANDROID_SDK_JNI}/OpenCV.mk 

मैं पहले ही अपनी makefile में मेरी चर सेट

देखें: http://docs.opencv.org/2.4/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html

0

मैंने इस समस्या के साथ घंटों तक लड़ा, जब मैंने मस्ती और वोला के लिए कुछ कोशिश की! मैं System.loadLibrary("whateverYourLibraryWasCalled"); पर समस्या मिल गया तो मैं बस से पहले भरी हुई OpenCV जोड़ें:

static { 
    System.loadLibrary("opencv_java3"); 
    System.loadLibrary("MyOpencvLibs"); 
} 

और सब कुछ ठीक काम किया।

संबंधित मुद्दे