0
我在android中遇到opencv問題。我在谷歌嘗試了很多搜索,並嘗試調試,但無法找出解決方案。這裏是hte logcat文件:使用opencv進行人臉識別
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)
我可以說這個問題是在加載native_sample庫。但沒有任何解決方案。我在下面的行收到錯誤:
// 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 ****
而我的bin文件沒有生成。這是我在"setContentView(R.layout.activity_main);"
這裏在「R」出現錯誤。
你確定你的庫編譯成功嗎?你能顯示你的'Android.mk'文件嗎? – JonesV
我已添加android.mk文件。 – Developer
你確定你的C++代碼編譯成功嗎?您可以嘗試使用命令'ndk-build'手動構建它,或者使用Eclipse構建C++部分。 – JonesV