Android 基于opencv的人脸识别

Android 基于opencv的人脸识别,android,opencv,loadlibrary,Android,Opencv,Loadlibrary,我在android中面临opencv的问题。我试着在谷歌搜索了很多次,也试着调试一下,但是没有找到解决办法。以下是hte logcat文件: 06-27 16:52:41.423: E/AndroidRuntime(6974): FATAL EXCEPTION: main 06-27 16:52:41.423: E/AndroidRuntime(6974): java.lang.UnsatisfiedLinkError: Couldn't load native_sample: findLibr

我在android中面临opencv的问题。我试着在谷歌搜索了很多次,也试着调试一下,但是没有找到解决办法。以下是hte logcat文件:

06-27 16:52:41.423: E/AndroidRuntime(6974): FATAL EXCEPTION: main
06-27 16:52:41.423: E/AndroidRuntime(6974): java.lang.UnsatisfiedLinkError: Couldn't load native_sample: findLibrary returned null
06-27 16:52:41.423: E/AndroidRuntime(6974):     at java.lang.Runtime.loadLibrary(Runtime.java:365)
06-27 16:52:41.423: E/AndroidRuntime(6974):     at java.lang.System.loadLibrary(System.java:535)
06-27 16:52:41.423: E/AndroidRuntime(6974):     at org.opencv.face.Sample3Native$1.onManagerConnected(Sample3Native.java:83)
06-27 16:52:41.423: E/AndroidRuntime(6974):     at org.opencv.android.AsyncServiceHelper$1.onServiceConnected(AsyncServiceHelper.java:314)
06-27 16:52:41.423: E/AndroidRuntime(6974):     at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1068)
06-27 16:52:41.423: E/AndroidRuntime(6974):     at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1085)
06-27 16:52:41.423: E/AndroidRuntime(6974):     at android.os.Handler.handleCallback(Handler.java:605)
06-27 16:52:41.423: E/AndroidRuntime(6974):     at android.os.Handler.dispatchMessage(Handler.java:92)
06-27 16:52:41.423: E/AndroidRuntime(6974):     at android.os.Looper.loop(Looper.java:137)
06-27 16:52:41.423: E/AndroidRuntime(6974):     at android.app.ActivityThread.main(ActivityThread.java:4441)
06-27 16:52:41.423: E/AndroidRuntime(6974):     at java.lang.reflect.Method.invokeNative(Native Method)
06-27 16:52:41.423: E/AndroidRuntime(6974):     at java.lang.reflect.Method.invoke(Method.java:511)
06-27 16:52:41.423: E/AndroidRuntime(6974):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
06-27 16:52:41.423: E/AndroidRuntime(6974):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
06-27 16:52:41.423: E/AndroidRuntime(6974):     at dalvik.system.NativeStart.main(Native Method)
我可以说问题在于加载本机样本库。但是没有任何解决办法。我在以下行中遇到错误:

// Load native library after(!) OpenCV initialization
System.loadLibrary("native_sample");
这是我的android.mk文件:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

include ../../sdk/native/jni/OpenCV.mk

LOCAL_MODULE    := native_sample
LOCAL_SRC_FILES := jni_part.cpp
LOCAL_LDLIBS +=  -llog -ldl

include $(BUILD_SHARED_LIBRARY)
这是我的application.mk文件:

APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := armeabi
以下是我的控制台输出:

**** Build of configuration Default for project Face Recognition_opencv ****

D:\NDK\android-ndk-r8e-windows-x86\android-ndk-r8e\ndk-build.cmd 
"Compile++ thumb : native_sample <= jni_part.cpp
SharedLibrary  : libnative_sample.so
Install        : libnative_sample.so => libs/armeabi/libnative_sample.so

**** Build Finished ****
****构建项目人脸识别的默认配置\u opencv****
D:\NDK\android-NDK-r8e-windows-x86\android-NDK-r8e\NDK-build.cmd
Compile++thumb:native_sample libs/armeabi/libnative_sample.so
****建成****

并且我的bin文件没有生成。这就是我在setContentView(R.layout.activity_main)中遇到错误的原因;“在“R”中。

在您的
Android.mk
文件中,应该有一个
include
看起来像:

include $(LOCAL_PATH)/../../sdk/native/jni/OpenCV.mk

您需要将其更改为指向实际的
OpenCV.mk
文件(即
$(本地路径)
是指向
jni
文件夹的路径,您需要指向
/sdk/native/jni/OpenCV.mk

你确信你的库是成功编译的吗?你能显示你的代码> Android?MK < /Cord>文件吗?我添加了安卓ID.MK文件。你确定C++ C++代码编译成功吗?你可以尝试使用命令<代码> NDK Bug < /Cube手工构建它,或者用Eclipse构建C++部分。mpiled successfull?在Eclipse中,单击“构建”并查看控制台中的输出。。。