http://blog.csdn.net/yanzi1225627/article/details/27863615

OpenCV4Android释疑: 透析Android以JNI调OpenCV的三种方式(让OpenCVManager永不困扰)

根据上文中的方法。使用OpenCV3.0.0

Android.mk文件为:

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)OpenCV_INSTALL_MODULES:=onOPENCV_CAMERA_MODULES:=offOPENCV_LIB_TYPE:=STATIC      //静态没有成功,改为SHARED可以ifeq ("$(wildcard $(OPENCV_MK_PATH))","")include /home/myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/OpenCV.mk //为了编译依赖OpenCV的soelse  include $(OPENCV_MK_PATH)  endif LOCAL_MODULE := TestOpenCV       //生成so的名LOCAL_SRC_FILES := jni_part.cpp    //jni下的cpp文件名LOCAL_LDLIBS    += -lm -llog             include $(BUILD_SHARED_LIBRARY) 

出现以下几种形式的错误

(1)OPENCV_LIB_TYPE:=STATIC 报了以下一堆错误

:~/workspace/TestOpenCV$ ndk-buildCompile++ thumb  : TestOpenCV <= jni_part.cppSharedLibrary  : libTestOpenCV.soInstall        : libTestOpenCV.so => libs/armeabi-v7a/libTestOpenCV.solenovo-myc@lenovomyc-Lenovo-Product:~/workspace/TestOpenCV$ ndk-buildInstall        : libTestOpenCV.so => libs/armeabi-v7a/libTestOpenCV.solenovo-myc@lenovomyc-Lenovo-Product:~/workspace/TestOpenCV$ ndk-buildInstall        : libTestOpenCV.so => libs/armeabi-v7a/libTestOpenCV.solenovo-myc@lenovomyc-Lenovo-Product:~/workspace/TestOpenCV$ ndk-buildCompile++ thumb  : TestOpenCV <= jni_part.cppPrebuilt       : libgnustl_static.a <= <NDK>/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/SharedLibrary  : libTestOpenCV.soInstall        : libTestOpenCV.so => libs/armeabi-v7a/libTestOpenCV.solenovo-myc@lenovomyc-Lenovo-Product:~/workspace/TestOpenCV$ ndk-buildCompile++ thumb  : TestOpenCV <= jni_part.cppPrebuilt       : libopencv_shape.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../libs/armeabi-v7a/Prebuilt       : libopencv_stitching.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../libs/armeabi-v7a/Prebuilt       : libopencv_objdetect.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../libs/armeabi-v7a/Prebuilt       : libopencv_superres.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../libs/armeabi-v7a/Prebuilt       : libopencv_ts.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../libs/armeabi-v7a/Prebuilt       : libopencv_videostab.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../libs/armeabi-v7a/Prebuilt       : libopencv_calib3d.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../libs/armeabi-v7a/Prebuilt       : libopencv_features2d.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../libs/armeabi-v7a/Prebuilt       : libopencv_highgui.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../libs/armeabi-v7a/Prebuilt       : libopencv_videoio.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../libs/armeabi-v7a/Prebuilt       : libopencv_imgcodecs.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../libs/armeabi-v7a/Prebuilt       : libopencv_androidcamera.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../libs/armeabi-v7a/Prebuilt       : libopencv_video.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../libs/armeabi-v7a/Prebuilt       : libopencv_photo.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../libs/armeabi-v7a/Prebuilt       : libopencv_ml.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../libs/armeabi-v7a/Prebuilt       : libopencv_imgproc.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../libs/armeabi-v7a/Prebuilt       : libopencv_flann.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../libs/armeabi-v7a/Prebuilt       : libopencv_core.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../libs/armeabi-v7a/Prebuilt       : libopencv_hal.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../libs/armeabi-v7a/Prebuilt       : liblibjpeg.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/Prebuilt       : liblibwebp.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/Prebuilt       : liblibpng.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/Prebuilt       : liblibtiff.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/Prebuilt       : liblibjasper.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/Prebuilt       : libIlmImf.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/Prebuilt       : libtbb.a <= /home/lenovo-myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/SharedLibrary  : libTestOpenCV.so/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_features2d.a(fast.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_features2d.a(fast_score.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_features2d.a(feature2d.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_features2d.a(keypoint.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_features2d.a(opencl_kernels_features2d.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_imgproc.a(color.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_imgproc.a(demosaicing.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_imgproc.a(drawing.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_imgproc.a(hershey_fonts.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_imgproc.a(tables.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(algorithm.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(alloc.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(convert.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(copy.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(datastructs.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(mathfuncs.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(matrix.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(ocl.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(opengl.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(parallel.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(persistence.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(stat.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(stl.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(system.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(umatrix.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(arithm.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(array.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(cuda_gpu_mat.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(cuda_host_mem.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(cuda_stream.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(kmeans.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(lapack.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(matmul.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(matop.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(pca.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(rand.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_core.a(tables.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_hal.a(mathfuncs.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_hal.a(matrix.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libopencv_hal.a(stat.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libtbb.a(governor.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libtbb.a(market.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libtbb.a(private_server.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libtbb.a(scheduler.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libtbb.a(task.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libtbb.a(task_group_context.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libtbb.a(tbb_main.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libtbb.a(tbb_misc.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libtbb.a(rml_tbb.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libtbb.a(arena.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libtbb.a(cache_aligned_allocator.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libtbb.a(dynamic_link.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libtbb.a(observer_proxy.cpp.o): Unknown EABI object attribute 34/home/lenovo-myc/android_developer_tools/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Warning: ./obj/local/armeabi-v7a/libtbb.a(spin_rw_mutex.cpp.o): Unknown EABI object attribute 34./obj/local/armeabi-v7a/libopencv_core.a(ocl.cpp.o): In function `cv::ocl::Kernel::set(int, cv::ocl::Image2D const&)':ocl.cpp:(.text._ZN2cv3ocl6Kernel3setEiRKNS0_7Image2DE+0x28): undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)'./obj/local/armeabi-v7a/libopencv_core.a(ocl.cpp.o): In function `cv::ocl::OpenCLBufferPoolBaseImpl<cv::ocl::OpenCLBufferPoolImpl, cv::ocl::CLBufferEntry, _cl_mem*>::_checkSizeOfReservedEntries()':ocl.cpp:(.text._ZN2cv3ocl24OpenCLBufferPoolBaseImplINS0_20OpenCLBufferPoolImplENS0_13CLBufferEntryEP7_cl_memE27_checkSizeOfReservedEntriesEv[cv::ocl::OpenCLBufferPoolBaseImpl<cv::ocl::OpenCLBufferPoolImpl, cv::ocl::CLBufferEntry, _cl_mem*>::_checkSizeOfReservedEntries()]+0x22): undefined reference to `std::__detail::_List_node_base::_M_unhook()'./obj/local/armeabi-v7a/libopencv_core.a(ocl.cpp.o): In function `cv::ocl::OpenCLBufferPoolBaseImpl<cv::ocl::OpenCLBufferPoolImpl, cv::ocl::CLBufferEntry, _cl_mem*>::setMaxReservedSize(unsigned int)':ocl.cpp:(.text._ZN2cv3ocl24OpenCLBufferPoolBaseImplINS0_20OpenCLBufferPoolImplENS0_13CLBufferEntryEP7_cl_memE18setMaxReservedSizeEj[cv::ocl::OpenCLBufferPoolBaseImpl<cv::ocl::OpenCLBufferPoolImpl, cv::ocl::CLBufferEntry, _cl_mem*>::setMaxReservedSize(unsigned int)]+0x46): undefined reference to `std::__detail::_List_node_base::_M_unhook()'./obj/local/armeabi-v7a/libopencv_core.a(ocl.cpp.o): In function `cv::ocl::OpenCLBufferPoolBaseImpl<cv::ocl::OpenCLBufferPoolImpl, cv::ocl::CLBufferEntry, _cl_mem*>::release(_cl_mem*)':ocl.cpp:(.text._ZN2cv3ocl24OpenCLBufferPoolBaseImplINS0_20OpenCLBufferPoolImplENS0_13CLBufferEntryEP7_cl_memE7releaseES5_[cv::ocl::OpenCLBufferPoolBaseImpl<cv::ocl::OpenCLBufferPoolImpl, cv::ocl::CLBufferEntry, _cl_mem*>::release(_cl_mem*)]+0x40): undefined reference to `std::__detail::_List_node_base::_M_unhook()'ocl.cpp:(.text._ZN2cv3ocl24OpenCLBufferPoolBaseImplINS0_20OpenCLBufferPoolImplENS0_13CLBufferEntryEP7_cl_memE7releaseES5_[cv::ocl::OpenCLBufferPoolBaseImpl<cv::ocl::OpenCLBufferPoolImpl, cv::ocl::CLBufferEntry, _cl_mem*>::release(_cl_mem*)]+0xe4): undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)'./obj/local/armeabi-v7a/libopencv_core.a(ocl.cpp.o): In function `cv::ocl::OpenCLBufferPoolBaseImpl<cv::ocl::OpenCLBufferPoolImpl, cv::ocl::CLBufferEntry, _cl_mem*>::_findAndRemoveEntryFromReservedList(cv::ocl::CLBufferEntry&, unsigned int)':ocl.cpp:(.text._ZN2cv3ocl24OpenCLBufferPoolBaseImplINS0_20OpenCLBufferPoolImplENS0_13CLBufferEntryEP7_cl_memE35_findAndRemoveEntryFromReservedListERS3_j[cv::ocl::OpenCLBufferPoolBaseImpl<cv::ocl::OpenCLBufferPoolImpl, cv::ocl::CLBufferEntry, _cl_mem*>::_findAndRemoveEntryFromReservedList(cv::ocl::CLBufferEntry&, unsigned int)]+0x54): undefined reference to `std::__detail::_List_node_base::_M_unhook()'ocl.cpp:(.text._ZN2cv3ocl24OpenCLBufferPoolBaseImplINS0_20OpenCLBufferPoolImplENS0_13CLBufferEntryEP7_cl_memE35_findAndRemoveEntryFromReservedListERS3_j[cv::ocl::OpenCLBufferPoolBaseImpl<cv::ocl::OpenCLBufferPoolImpl, cv::ocl::CLBufferEntry, _cl_mem*>::_findAndRemoveEntryFromReservedList(cv::ocl::CLBufferEntry&, unsigned int)]+0x8e): undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)'./obj/local/armeabi-v7a/libopencv_core.a(ocl.cpp.o): In function `cv::ocl::OpenCLBufferPoolImpl::_allocateBufferEntry(cv::ocl::CLBufferEntry&, unsigned int)':ocl.cpp:(.text._ZN2cv3ocl20OpenCLBufferPoolImpl20_allocateBufferEntryERNS0_13CLBufferEntryEj[cv::ocl::OpenCLBufferPoolImpl::_allocateBufferEntry(cv::ocl::CLBufferEntry&, unsigned int)]+0x8a): undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)'collect2: ld returned 1 exit statusmake: *** [obj/local/armeabi-v7a/libTestOpenCV.so] Error 1
ndk-build错误

没解决

(2)改为 OPENCV_LIB_TYPE:=SHARED之后。编译通过。工程下生成 libs 和 obj目录下的文件

(3)修改Activity文件如下:

package com.example.testopencv;import org.opencv.android.BaseLoaderCallback;import org.opencv.android.LoaderCallbackInterface;import org.opencv.android.OpenCVLoader;import org.opencv.android.Utils;import org.opencv.core.Mat;import org.opencv.imgproc.Imgproc;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.BitmapFactory;import android.os.Bundle;import android.os.Handler;import android.support.v4.app.Fragment;import android.support.v7.app.ActionBarActivity;import android.util.Log;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.Button;import android.widget.ImageView;/** * 图像灰度化demo *  * @author myc * */public class NoManagerOpenCVActivity extends Activity{    Button btnProcess;    Bitmap srcBitmap;    Bitmap grayBitmap;    ImageView imgHuaishi;    private static boolean flag = true;    private boolean isFirst = true;    private static final String TAG = "NoManagerActivity";        @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.fragment_main);                initUI();        btnProcess.setOnClickListener(new ProcessClickListener());    }       // OpenCV库加载并初始化成功后的回调函数    private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {        @Override        public void onManagerConnected(int status) {            // TODO Auto-generated method stub            switch (status) {            case BaseLoaderCallback.SUCCESS:                Log.i(TAG, "成功加载");                break;            default:                super.onManagerConnected(status);                Log.i(TAG, "加载失败");                break;            }        }    };    public void initUI() {        btnProcess = (Button) findViewById(R.id.btn_gray_process);        imgHuaishi = (ImageView) findViewById(R.id.img_huaishi);        Log.i(TAG, "initUI sucess...");    }    public void procSrc2Gray() {        Mat rgbMat = new Mat();        Mat grayMat = new Mat();        srcBitmap = BitmapFactory.decodeResource(getResources(),                R.drawable.nanhuaijin);        grayBitmap = Bitmap.createBitmap(srcBitmap.getWidth(),                srcBitmap.getHeight(), Config.RGB_565);        Utils.bitmapToMat(srcBitmap, rgbMat);// convert original bitmap to Mat,                                             // R G B.        Imgproc.cvtColor(rgbMat, grayMat, Imgproc.COLOR_RGB2GRAY);// rgbMat to                                                                  // gray                                                                  // grayMat        Utils.matToBitmap(grayMat, grayBitmap); // convert mat to bitmap        Log.i(TAG, "procSrc2Gray sucess...");    }    private class ProcessClickListener implements OnClickListener {        @Override        public void onClick(View v) {            // TODO Auto-generated method stub            if (isFirst) {                procSrc2Gray();                isFirst = false;            }            if (flag) {                imgHuaishi.setImageBitmap(grayBitmap);                btnProcess.setText("查看原图");                flag = false;            } else {                imgHuaishi.setImageBitmap(srcBitmap);                btnProcess.setText("灰度化");                flag = true;            }        }    }    @Override    protected void onResume() {        // TODO Auto-generated method stub        super.onResume();            }    public native void FindFeatures(long matAddrGr, long matAddrRgba);}

OpenCVLoader.initAsync 这句注释掉,因为这句是使用OpenCVManager的。

修改为加载刚生成的库 System.loadLibrary("TestOpenCV");

(4)需要将 /home/myc/Documents/sdk/openCV/OpenCV-android-sdk/sdk/native/libs/armeabi-v7a/opencv_java.so 拷到libs路径下

(和LibTestOpenCV.so一起)。如果没有拷过来,会报如下错误:

06-04 16:08:47.956: I/NoManagerActivity(5497): initUI sucess...06-04 16:08:47.956: I/NoManagerActivity(5497): OpenCV library load!06-04 16:08:47.956: D/OpenCV/StaticHelper(5497): Trying to get library list06-04 16:08:47.966: E/OpenCV/StaticHelper(5497): OpenCV error: Cannot load info library for OpenCV06-04 16:08:47.966: D/OpenCV/StaticHelper(5497): Library list: ""06-04 16:08:47.966: D/OpenCV/StaticHelper(5497): First attempt to load libs06-04 16:08:47.966: D/OpenCV/StaticHelper(5497): Trying to init OpenCV libs06-04 16:08:47.966: D/OpenCV/StaticHelper(5497): Trying to load library opencv_java06-04 16:08:47.966: D/OpenCV/StaticHelper(5497): Cannot load library "opencv_java"06-04 16:08:47.966: W/System.err(5497): java.lang.UnsatisfiedLinkError: Couldn't load opencv_java from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.testopencv-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.testopencv-1, /vendor/lib, /system/lib]]]: findLibrary returned null06-04 16:08:47.966: W/System.err(5497):     at java.lang.Runtime.loadLibrary(Runtime.java:355)06-04 16:08:47.966: W/System.err(5497):     at java.lang.System.loadLibrary(System.java:525)06-04 16:08:47.966: W/System.err(5497):     at org.opencv.android.StaticHelper.loadLibrary(StaticHelper.java:64)06-04 16:08:47.966: W/System.err(5497):     at org.opencv.android.StaticHelper.initOpenCVLibs(StaticHelper.java:95)06-04 16:08:47.966: W/System.err(5497):     at org.opencv.android.StaticHelper.initOpenCV(StaticHelper.java:39)06-04 16:08:47.966: W/System.err(5497):     at org.opencv.android.OpenCVLoader.initDebug(OpenCVLoader.java:72)06-04 16:08:47.966: W/System.err(5497):     at com.example.testopencv.NoManagerActivity.onResume(NoManagerActivity.java:127)06-04 16:08:47.966: W/System.err(5497):     at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1192)06-04 16:08:47.966: W/System.err(5497):     at android.app.Activity.performResume(Activity.java:5211)06-04 16:08:47.966: W/System.err(5497):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2803)06-04 16:08:47.966: W/System.err(5497):     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2842)06-04 16:08:47.966: W/System.err(5497):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2289)06-04 16:08:47.966: W/System.err(5497):     at android.app.ActivityThread.access$600(ActivityThread.java:159)06-04 16:08:47.966: W/System.err(5497):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1274)06-04 16:08:47.966: W/System.err(5497):     at android.os.Handler.dispatchMessage(Handler.java:99)06-04 16:08:47.966: W/System.err(5497):     at android.os.Looper.loop(Looper.java:137)06-04 16:08:47.966: W/System.err(5497):     at android.app.ActivityThread.main(ActivityThread.java:5179)06-04 16:08:47.966: W/System.err(5497):     at java.lang.reflect.Method.invokeNative(Native Method)06-04 16:08:47.966: W/System.err(5497):     at java.lang.reflect.Method.invoke(Method.java:525)06-04 16:08:47.966: W/System.err(5497):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)06-04 16:08:47.966: W/System.err(5497):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:610)06-04 16:08:47.966: W/System.err(5497):     at dalvik.system.NativeStart.main(Native Method)06-04 16:08:47.966: D/OpenCV/StaticHelper(5497): First attempt to load libs fails06-04 16:08:47.966: I/NoManagerActivity(5497): OpenCV load not successfully
缺少Libopencv_java.so报错

注:在OpenCV Library - 3.0.0-rc1 工程的StaticHelper.java 中有如下代码:

    // If dependencies list is not defined or empty.
    result &= loadLibrary("opencv_java");

  即在OpenCVLoader初始化过程中,dependencies list 未定义或者为空的情况下,都会默认加载Libopencv_java.so

  因此即使Activity中 System.loadLibrary("opencv_java"); 这句被注释掉,还是会报错。

(5)下边这个错调了半天,发现将System.loadLibrary("TestOpenCV");写成了 System.loadLibrary("LibTestOpenCV");

应该和 LOCAL_MODULE := TestOpenCV 一致

06-04 15:58:56.206: I/NoManagerActivity(3993): initUI sucess...06-04 15:58:56.206: I/NoManagerActivity(3993): OpenCV library load!06-04 15:58:56.206: D/dalvikvm(3993): Trying to load lib /data/app-lib/com.example.testopencv-1/libopencv_java.so 0x41f4ae8006-04 15:58:56.236: D/dalvikvm(3993): Added shared lib /data/app-lib/com.example.testopencv-1/libopencv_java.so 0x41f4ae8006-04 15:58:56.236: I/NoManagerActivity(3993): start loading libTestOpenCV06-04 15:58:56.236: D/AndroidRuntime(3993): Shutting down VM06-04 15:58:56.236: W/dalvikvm(3993): threadid=1: thread exiting with uncaught exception (group=0x415a9898)06-04 15:58:56.236: E/AndroidRuntime(3993): FATAL EXCEPTION: main06-04 15:58:56.236: E/AndroidRuntime(3993): java.lang.UnsatisfiedLinkError: Couldn't load libTestOpenCV from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.testopencv-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.testopencv-1, /vendor/lib, /system/lib]]]: findLibrary returned null06-04 15:58:56.236: E/AndroidRuntime(3993):     at java.lang.Runtime.loadLibrary(Runtime.java:355)06-04 15:58:56.236: E/AndroidRuntime(3993):     at java.lang.System.loadLibrary(System.java:525)06-04 15:58:56.236: E/AndroidRuntime(3993):     at com.example.testopencv.NoManagerActivity.onResume(NoManagerActivity.java:132)06-04 15:58:56.236: E/AndroidRuntime(3993):     at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1192)06-04 15:58:56.236: E/AndroidRuntime(3993):     at android.app.Activity.performResume(Activity.java:5211)06-04 15:58:56.236: E/AndroidRuntime(3993):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2803)06-04 15:58:56.236: E/AndroidRuntime(3993):     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2842)06-04 15:58:56.236: E/AndroidRuntime(3993):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2289)06-04 15:58:56.236: E/AndroidRuntime(3993):     at android.app.ActivityThread.access$600(ActivityThread.java:159)06-04 15:58:56.236: E/AndroidRuntime(3993):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1274)06-04 15:58:56.236: E/AndroidRuntime(3993):     at android.os.Handler.dispatchMessage(Handler.java:99)06-04 15:58:56.236: E/AndroidRuntime(3993):     at android.os.Looper.loop(Looper.java:137)06-04 15:58:56.236: E/AndroidRuntime(3993):     at android.app.ActivityThread.main(ActivityThread.java:5179)06-04 15:58:56.236: E/AndroidRuntime(3993):     at java.lang.reflect.Method.invokeNative(Native Method)06-04 15:58:56.236: E/AndroidRuntime(3993):     at java.lang.reflect.Method.invoke(Method.java:525)06-04 15:58:56.236: E/AndroidRuntime(3993):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)06-04 15:58:56.236: E/AndroidRuntime(3993):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:610)06-04 15:58:56.236: E/AndroidRuntime(3993):     at dalvik.system.NativeStart.main(Native Method)
so名错误

(6)成功的log

06-04 16:01:22.966: I/NoManagerActivity(4301): initUI sucess...06-04 16:01:22.966: I/NoManagerActivity(4301): OpenCV library load!06-04 16:01:22.966: D/OpenCV/StaticHelper(4301): Trying to get library list06-04 16:01:22.966: E/OpenCV/StaticHelper(4301): OpenCV error: Cannot load info library for OpenCV06-04 16:01:22.966: D/OpenCV/StaticHelper(4301): Library list: ""06-04 16:01:22.966: D/OpenCV/StaticHelper(4301): First attempt to load libs06-04 16:01:22.966: D/OpenCV/StaticHelper(4301): Trying to init OpenCV libs06-04 16:01:22.966: D/OpenCV/StaticHelper(4301): Trying to load library opencv_java06-04 16:01:22.966: D/dalvikvm(4301): Trying to load lib /data/app-lib/com.example.testopencv-1/libopencv_java.so 0x41f4c9f806-04 16:01:22.996: D/dalvikvm(4301): Added shared lib /data/app-lib/com.example.testopencv-1/libopencv_java.so 0x41f4c9f806-04 16:01:22.996: D/OpenCV/StaticHelper(4301): Library opencv_java loaded06-04 16:01:22.996: D/OpenCV/StaticHelper(4301): First attempt to load libs is OK06-04 16:01:22.996: I/OpenCV/StaticHelper(4301): General configuration for OpenCV 3.0.0-rc1 =====================================06-04 16:01:22.996: I/OpenCV/StaticHelper(4301):   Version control:               3.0.0-rc106-04 16:01:22.996: I/OpenCV/StaticHelper(4301):   Platform:06-04 16:01:22.996: I/OpenCV/StaticHelper(4301):     Host:                        Darwin 13.2.0 i38606-04 16:01:22.996: I/OpenCV/StaticHelper(4301):     Target:                      Linux 1 armv7-a06-04 16:01:22.996: I/OpenCV/StaticHelper(4301):     CMake:                       2.8.12.206-04 16:01:22.996: I/OpenCV/StaticHelper(4301):     CMake generator:             Ninja06-04 16:01:22.996: I/OpenCV/StaticHelper(4301):     CMake build tool:            /usr/local/bin/ninja06-04 16:01:22.996: I/OpenCV/StaticHelper(4301):     Configuration:               Release06-04 16:01:22.996: I/OpenCV/StaticHelper(4301):   C/C++:06-04 16:01:22.996: I/OpenCV/StaticHelper(4301):     Built as dynamic libs?:      NO06-04 16:01:22.996: I/OpenCV/StaticHelper(4301):     C++ Compiler:                /opt/android/android-ndk-r8e/toolchains/arm-linux-androideabi-4.7/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-g++  (ver 4.7)06-04 16:01:22.996: I/OpenCV/StaticHelper(4301):     C++ flags (Release):         -fexceptions -frtti -fpic -Wno-psabi --sysroot=/opt/android/android-ndk-r8e/platforms/android-8/arch-arm -funwind-tables -finline-limit=64 -fsigned-char -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fdata-sections -ffunction-sections -Wa,--noexecstack    -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -fdiagnostics-show-option -fomit-frame-pointer -fvisibility=hidden -fvisibility-inlines-hidden -mthumb -fomit-frame-pointer -fno-strict-aliasing -O3 -DNDEBUG  -DNDEBUG06-04 16:01:22.996: I/OpenCV/StaticHelper(4301):     C++ flags (Debug):           -fexceptions -frtti -fpic -Wno-psabi --sysroot=/opt/android/android-ndk-r8e/platforms/android-8/arch-arm -funwind-tables -finline-limit=64 -fsigned-char -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fdata-sections -ffunction-sections -Wa,--noexecstack    -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -fdiagnostics-show-option -fomit-frame-pointer -fvisibility=hidden -fvisibility-inlines-hidden -marm -fno-omit-frame-pointer -fno-strict-aliasing -O0 -g -DDEBUG -D_DEBUG  -O0 -DDEBUG -D_DEBUG06-04 16:01:22.996: I/OpenCV/StaticHelper(4301):     C Compiler:                  /opt/android/android-ndk-r8e/toolchains/arm-linux-androideabi-4.7/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gcc06-04 16:01:22.996: I/OpenCV/StaticHelper(4301):     C flags (Release):           -fexceptions -fpic -Wno-psabi --sysroot=/opt/android/android-ndk-r8e/platforms/android-8/arch-arm -funwind-tables -finline-limit=64 -fsigned-char -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fdata-sections -ffunction-sections -Wa,--noexecstack    -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -fdiagnostics-show-option -fomit-frame-pointer -fvisibility=hidden -mthumb -fomit-frame-pointer -fno-strict-aliasing -O3 -DNDEBUG  -DNDEBUG06-04 16:01:22.996: I/OpenCV/StaticHelper(4301):     C flags (Debug):             -fexceptions -fpic -Wno-psabi --sysroot=/opt/android/android-ndk-r8e/platforms/android-8/arch-arm -funwind-tables -finline-limit=64 -fsigned-char -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fdata-sections -ffunction-sections -Wa,--noexecstack    -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -fdiagnostics-show-option -fomit-frame-pointer -fvisibility=hidden -marm -fno-omit-frame-pointer -fno-strict-aliasing -O0 -g -DDEBUG -D_DEBUG  -O0 -DDEBUG -D_DEBUG06-04 16:01:22.996: I/OpenCV/StaticHelper(4301):     Linker flags (Release):      -Wl,--fix-cortex-a8 -Wl,--no-undefined -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now 06-04 16:01:22.996: I/OpenCV/StaticHelper(4301):     Linker flags (Debug):        -Wl,--fix-cortex-a8 -Wl,--no-undefined -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now 06-04 16:01:22.996: I/OpenCV/StaticHelper(4301):     Precompiled headers:         YES06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):   OpenCV modules:06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     To be built:                 hal core flann imgproc ml photo video androidcamera imgcodecs shape videoio highgui objdetect superres ts features2d calib3d java stitching videostab06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Disabled:                    world06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Disabled by dependency:      -06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Unavailable:                 cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev python2 viz06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):   Android: 06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Android ABI:                 armeabi-v7a06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     STL type:                    gnustl_static06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Native API level:            android-806-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     SDK target:                  android-1406-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Android NDK:                 /opt/android/android-ndk-r8e (toolchain: arm-linux-androideabi-4.7)06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     android tool:                /opt/android/android-sdk-macosx/tools/android (Android SDK Tools, revision 24.1.2.)06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Google Play package:         YES06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Android examples:            YES06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):   GUI: 06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     GTK+:                        NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     GThread :                    NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     GtkGlExt:                    NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     OpenGL support:              NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     VTK support:                 NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):   Media I/O: 06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     ZLib:                        z (ver 1.2.3)06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     JPEG:                        build (ver 90)06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     WEBP:                        build (ver 0.3.1)06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     PNG:                         build (ver 1.5.12)06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     TIFF:                        build (ver 42 - 4.0.2)06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     JPEG 2000:                   build (ver 1.900.1)06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     OpenEXR:                     build (ver 1.7.1)06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     GDAL:                        NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):   Video I/O:06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     AndroidNativeCamera:         YES, use prebuilt libraries06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):   Other third-party libraries:06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Use IPP:                     NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Use Eigen:                   NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Use TBB:                     YES (ver 4.1 interface 6102)06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Use OpenMP:                  NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Use GCD                      NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Use Concurrency              NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Use C=:                      NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Use Cuda:                    NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Use OpenCL:                  NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):   Python 2:06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Interpreter:                 /usr/bin/python2.7 (ver 2.7.5)06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):   Python 3:06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Interpreter:                 NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):   Python (for build):            /usr/bin/python2.706-04 16:01:23.006: I/OpenCV/StaticHelper(4301):   Java:06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     ant:                         /usr/local/bin/ant (ver 1.9.4)06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Java wrappers:               YES06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Java tests:                  NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):   Matlab:06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     mex:                         NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):   Documentation:06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Doxygen:                     NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     PlantUML:                    NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):   Tests and samples:06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Tests:                       NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     Performance tests:           NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):     C/C++ Examples:              NO06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):   Install path:                  /builds/master_pack-android/build/o4a/install06-04 16:01:23.006: I/OpenCV/StaticHelper(4301):   cvconfig.h is in:              /builds/master_pack-android/build/o4a06-04 16:01:23.006: I/OpenCV/StaticHelper(4301): -----------------------------------------------------------------06-04 16:01:23.006: D/dalvikvm(4301): Trying to load lib /data/app-lib/com.example.testopencv-1/libopencv_java.so 0x41f4c9f806-04 16:01:23.006: D/dalvikvm(4301): Shared lib '/data/app-lib/com.example.testopencv-1/libopencv_java.so' already loaded in same CL 0x41f4c9f806-04 16:01:23.006: I/NoManagerActivity(4301): start loading libTestOpenCV06-04 16:01:23.006: D/dalvikvm(4301): Trying to load lib /data/app-lib/com.example.testopencv-1/libTestOpenCV.so 0x41f4c9f806-04 16:01:23.006: D/dalvikvm(4301): Added shared lib /data/app-lib/com.example.testopencv-1/libTestOpenCV.so 0x41f4c9f806-04 16:01:23.006: D/dalvikvm(4301): No JNI_OnLoad found in /data/app-lib/com.example.testopencv-1/libTestOpenCV.so 0x41f4c9f8, skipping init06-04 16:01:23.006: I/NoManagerActivity(4301): finish loading libTestOpenCV06-04 16:01:23.006: I/NoManagerActivity(4301): 成功加载06-04 16:01:23.046: D/libEGL(4301): loaded /vendor/lib/egl/libEGL_adreno.so06-04 16:01:23.046: D/libEGL(4301): loaded /vendor/lib/egl/libGLESv1_CM_adreno.so06-04 16:01:23.056: D/libEGL(4301): loaded /vendor/lib/egl/libGLESv2_adreno.so06-04 16:01:23.056: I/Adreno-EGL(4301): <qeglDrvAPI_eglInitialize:381>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_JB_3.2.1.4_RB1.04.03.00.187.021_msm8226_JB_3.2.1.4_RB1__release_AU ()06-04 16:01:23.056: I/Adreno-EGL(4301): OpenGL ES Shader Compiler Version: 20.00.0306-04 16:01:23.056: I/Adreno-EGL(4301): Build Date: 07/11/14 Fri06-04 16:01:23.056: I/Adreno-EGL(4301): Local Branch: mybranch381046706-04 16:01:23.056: I/Adreno-EGL(4301): Remote Branch: quic/jb_3.2.1.4_rb106-04 16:01:23.056: I/Adreno-EGL(4301): Local Patches: NONE06-04 16:01:23.056: I/Adreno-EGL(4301): Reconstruct Branch: AU_LINUX_ANDROID_JB_3.2.1.4_RB1.04.03.00.187.021 +  NOTHING06-04 16:01:23.086: D/OpenGLRenderer(4301): Enabling debug mode 0
成功的Log

(7)当把

        Log.i(TAG,"OpenCV library load!");        if (!OpenCVLoader.initDebug()) {            Log.i(TAG,"OpenCV load not successfully");//       OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, this, mLoaderCallback);        } else {//            System.loadLibrary("opencv_java");            Log.i(TAG,"start loading libTestOpenCV");            System.loadLibrary("TestOpenCV");// load other libraries            Log.i(TAG,"finish loading libTestOpenCV");            mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);        }

修改为

            Log.i(TAG,"OpenCV library load!");            System.loadLibrary("opencv_java");            Log.i(TAG,"start loading libTestOpenCV");            System.loadLibrary("TestOpenCV");// load other libraries            Log.i(TAG,"finish loading libTestOpenCV");            mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);

即跳过 OpenCVLoader.initDebug()过程,打出的log如下:

06-04 15:59:58.616: I/NoManagerActivity(4126): initUI sucess...06-04 15:59:58.616: I/NoManagerActivity(4126): OpenCV library load!06-04 15:59:58.616: D/dalvikvm(4126): Trying to load lib /data/app-lib/com.example.testopencv-2/libopencv_java.so 0x41f4b64006-04 15:59:58.616: D/dalvikvm(4126): Shared lib '/data/app-lib/com.example.testopencv-2/libopencv_java.so' already loaded in same CL 0x41f4b64006-04 15:59:58.616: I/NoManagerActivity(4126): start loading libTestOpenCV06-04 15:59:58.616: D/dalvikvm(4126): Trying to load lib /data/app-lib/com.example.testopencv-2/libTestOpenCV.so 0x41f4b64006-04 15:59:58.616: D/dalvikvm(4126): Shared lib '/data/app-lib/com.example.testopencv-2/libTestOpenCV.so' already loaded in same CL 0x41f4b64006-04 15:59:58.616: I/NoManagerActivity(4126): finish loading libTestOpenCV06-04 15:59:58.616: I/NoManagerActivity(4126): 成功加载

Log少了很多(仅为测试)

(8)调试中发现,官方给的Sample中。只用java层接口,没用jni层的例子。比如 OpenCV Sample - image-manipulations

只需要拷进去一个Libopencv_java.so,然后注释掉onResume函数中的initAsync这句。不用OpenCVManager就可以运行了

(怀疑如果功能增多需要拷进去其他so)

    @Override    public void onResume()    {        super.onResume();        if (!OpenCVLoader.initDebug()) {            Log.d(TAG, "Internal OpenCV library not found. Using OpenCV Manager for initialization");//            OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, this, mLoaderCallback);        } else {            Log.d(TAG, "OpenCV library found inside package. Using it!");            mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);        }    }

更多相关文章

  1. 解决android SDK下载相关工具连接失败问题-Failed to fetch
  2. Unable to instantiate application + ClassNotFoundException的
  3. android error: Apostrophe not preceded
  4. android WebViewClient和WebChromeClient
  5. android 加载图片并在上面画图
  6. Android(安卓)jcenter bad gateway 502(Unable to load Maven met
  7. Android(安卓)Studio 出现Error:Connection timed out: connect.
  8. android java.lang.IllegalArgumentException contains a path s
  9. Android常见的几种RuntimeException

随机推荐

  1. Android(安卓)亲测源码分享
  2. android环境配置(adb问题)
  3. Android(安卓)Permission的 protectLevel
  4. 关于android 的触摸事件
  5. android linux 最全的基础知识总结
  6. UBUNTU安装Android(安卓)Studio 3
  7. Android(安卓)Studio 安装ASM插件
  8. Android(安卓)SlidingMenu 使用详解
  9. Android性能优化
  10. Android第一次引导页设置