导入Opencv自带Sample项目报错

一 src中的最后一个文件报错,在package的第一个字母都报错,所有导入的android的包都报错

原因:文件project.properties 配置错误

打开项目根目录下的文件project.properties,发现最后一句 target=android-11

而我的Android SDK只下载了17和19 ,所以改为 target=android-17 , 就不报错了


二 文件中没有任何报错,在项目上报错,找到Problems, 报错为 "/ndk-build.cmd" not found 

原因:使用了jni,但是没有找到ndk-build.cmd

右键项目,Properties  --> C/C++ Build

修改build command 为自己的ndk的绝对路径,我的修改如下:

导入Opencv自带Sample项目报错_第1张图片


三 运行崩溃,退出,报错如下:

12-23 13:46:24.797: E/AndroidRuntime(15989): FATAL EXCEPTION: main
12-23 13:46:24.797: E/AndroidRuntime(15989): Process: org.opencv.samples.facedetect, PID: 15989
12-23 13:46:24.797: E/AndroidRuntime(15989): java.lang.UnsatisfiedLinkError: Couldn't load detection_based_tracker 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]]]: findLibrary returned null
12-23 13:46:24.797: E/AndroidRuntime(15989): 	at java.lang.Runtime.loadLibrary(Runtime.java:358)
12-23 13:46:24.797: E/AndroidRuntime(15989): 	at java.lang.System.loadLibrary(System.java:526)
12-23 13:46:24.797: E/AndroidRuntime(15989): 	at org.opencv.samples.facedetect.FdActivity$1.onManagerConnected(FdActivity.java:66)
12-23 13:46:24.797: E/AndroidRuntime(15989): 	at org.opencv.android.AsyncServiceHelper$1.onServiceConnected(AsyncServiceHelper.java:318)
12-23 13:46:24.797: E/AndroidRuntime(15989): 	at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1103)
12-23 13:46:24.797: E/AndroidRuntime(15989): 	at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1120)
12-23 13:46:24.797: E/AndroidRuntime(15989): 	at android.os.Handler.handleCallback(Handler.java:733)
12-23 13:46:24.797: E/AndroidRuntime(15989): 	at android.os.Handler.dispatchMessage(Handler.java:95)
12-23 13:46:24.797: E/AndroidRuntime(15989): 	at android.os.Looper.loop(Looper.java:136)
12-23 13:46:24.797: E/AndroidRuntime(15989): 	at android.app.ActivityThread.main(ActivityThread.java:5001)
12-23 13:46:24.797: E/AndroidRuntime(15989): 	at java.lang.reflect.Method.invokeNative(Native Method)
12-23 13:46:24.797: E/AndroidRuntime(15989): 	at java.lang.reflect.Method.invoke(Method.java:515)
12-23 13:46:24.797: E/AndroidRuntime(15989): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:806)
12-23 13:46:24.797: E/AndroidRuntime(15989): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
12-23 13:46:24.797: E/AndroidRuntime(15989): 	at dalvik.system.NativeStart.main(Native Method)

原因:没有生成so

自动生成失败,也不报错,那么就手动生成一下

进入控制台,方法如下:

bogon:~ apple$ cd "/Users/apple/Desktop/iwind/Project/OpenCV Sample - face-detection"
bogon:OpenCV Sample - face-detection apple$ ndk-build
jni/Android.mk:8: ../../sdk/native/jni/OpenCV.mk: No such file or directory
make: *** No rule to make target `../../sdk/native/jni/OpenCV.mk'.  Stop.
先进入到项目文件夹:cd "/Users/apple/Desktop/iwind/Project/OpenCV Sample - face-detection"

build:ndk-build

报错,说明文件jni/Android.mk 的第八行的 ../../sdk/native/jni/ 出错,原因是我的sample项目的路径不是原来的路径了,改为我自己的路径:

include /Users/apple/Downloads/face_android_github/OpenCV-2.4.9-android-sdk/sdk/native/jni/OpenCV.mk

保存,重新运行ndk-build

没有报错,成功了。然后刷新Eclipse中的项目,看到了出现一个obj的文件夹。再运行项目,不会报错。


至此,Sample-face-detection 项目运行成功~


你可能感兴趣的:(Android,配置环境,编程)