OpenCV 2.3.1의 사전 빌드 라이브러리를 사용하여 안드로이드에 대한 원시 코드에서 cv::imdecode()
을 호출하는 문제로 몇 시간을 벌써 고민하고 있습니다.Android에서 OpenCV - imdecode 링키지 오류
다음은 내가하려는 일입니다. 현재 정적 라이브러리로 빌드 된 BarcodesLibrary
이미지의 QR 코드를 감지하는 라이브러리가 있습니다. 그리고 나서 Java/C++ 객체 간의 변환을 보장하는 JNI 용 래퍼를 작성했습니다.이 모듈은 공유 라이브러리 JNI_QRBarcodesLibrary
에 패키징되고 BarcodesLibrary
도 링크되어 있습니다.
이제이 덤프에 표시된 오류가 발생합니다. 오류는 highgui
모듈을 삽입하고 imdecode()
을 호출하는 것과 관련됩니다. 그냥 모든 것을 잘 컴파일하고 라이브러리가 성공적으로 안드로이드에 imdecode()
없이 가져올 수있다 언급해야합니다.
"Compile++ thumb : JNI_QRBarcodesLibrary <= JNI_QRBarcodesLibrary.cpp
"Compile++ thumb : JNI_QRBarcodesLibrary <= jDetectedMark.cpp
"Compile++ thumb : JNI_QRBarcodesLibrary <= jImage.cpp
"Compile++ thumb : JNI_QRBarcodesLibrary <= JNIWrapper.cpp
"Compile++ thumb : JNI_QRBarcodesLibrary <= jPoint.cpp
"Compile++ thumb : JNI_QRBarcodesLibrary <= jSize.cpp
"Compile++ thumb : BarcodesLibrary <= Image.cpp
"Compile++ thumb : BarcodesLibrary <= Barcode.cpp
"Compile++ thumb : BarcodesLibrary <= QrBarcode.cpp
Prebuilt : libopencv_contrib.a <= ../OpenCV/libs/Android/armeabi/
Prebuilt : libopencv_calib3d.a <= ../OpenCV/libs/Android/armeabi/
Prebuilt : libopencv_objdetect.a <= ../OpenCV/libs/Android/armeabi/
Prebuilt : libopencv_features2d.a <= ../OpenCV/libs/Android/armeabi/
Prebuilt : libopencv_video.a <= ../OpenCV/libs/Android/armeabi/
Prebuilt : libopencv_imgproc.a <= ../OpenCV/libs/Android/armeabi/
Prebuilt : libopencv_highgui.a <= ../OpenCV/libs/Android/armeabi/
Prebuilt : libopencv_ml.a <= ../OpenCV/libs/Android/armeabi/
Prebuilt : libopencv_legacy.a <= ../OpenCV/libs/Android/armeabi/
Prebuilt : libopencv_flann.a <= ../OpenCV/libs/Android/armeabi/
Prebuilt : libopencv_core.a <= ../OpenCV/libs/Android/armeabi/
Prebuilt : lib3rdparty_libjpeg.a <= ../OpenCV/libs/Android/armeabi/
Prebuilt : lib3rdparty_libpng.a <= ../OpenCV/libs/Android/armeabi/
Prebuilt : lib3rdparty_libtiff.a <= ../OpenCV/libs/Android/armeabi/
Prebuilt : lib3rdparty_libjasper.a <= ../OpenCV/libs/Android/armeabi/
Prebuilt : lib3rdparty_zlib.a <= ../OpenCV/libs/Android/armeabi/
Prebuilt : libgnustl_static.a <= <NDK>/sources/cxx-stl/gnu-libstdc++/libs/armeabi
StaticLibrary : libBarcodesLibrary.a
SharedLibrary : libJNI_QRBarcodesLibrary.so
그리고 빌드이 오류로 종료 :
나는이 라이브러리는 OS에 의존 imshow, waitKey 등을 제공하는 반면이 라이브러리 내부의 모든 기능이 지원 될 것으로 기대하고 있었다./obj/local/armeabi/libopencv_highgui.a(grfmt_pxm.o):(.data.rel.ro+0x0): undefined reference to `vtable for __cxxabiv1::__enum_type_info'
./obj/local/armeabi/libopencv_highgui.a(bitstrm.o):(.data.rel.ro+0x0): undefined reference to `vtable for __cxxabiv1::__enum_type_info'
collect2: ld returned 1 exit status
make: *** [obj/local/armeabi/libJNI_QRBarcodesLibrary.so] Error 1
잘하지만 그것과 함께 문제가 될 imdecode
내가 계산에 포함되지 않은 것입니다.
이 문제를 해결하는 방법이나 안드로이드로 포팅하여 이미지 디코딩을 제공 할 수있는 다른 라이브러리, 특히 JPEG 형식을 제공하는 아이디어가 있습니까?
팁에 감사드립니다. 감사.
참고로, [JavaCV] (http://code.google.com/p/javacv/)를 사용해보십시오. NDK없이 사용할 수 있습니다 ... –