2013-06-27 3 views
0

У меня проблема с opencv в android. Я много искал в google, а также пытался отлаживать. Но не смог найти решение. Вот 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».

+1

Вы уверены, что ваша библиотека успешно скомпилирована? Можете ли вы показать свой файл Android.mk? – JonesV

+0

Я добавил файл android.mk. – Developer

+0

И вы уверены, что ваш код на C++ успешно скомпилирован? Вы можете попытаться создать его вручную, используя команду 'ndk-build' или создать часть C++ с помощью Eclipse. – JonesV

ответ

1

В файле Android.mk, должно быть include выглядит как:

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

Вы должны изменить его, чтобы указать на фактический OpenCV.mk файла (т.е. $(LOCAL_PATH) путь к папке jni, и вам нужно указать на <your OpenCV4Android folder>/sdk/native/jni/OpenCV.mk).

 Смежные вопросы

  • Нет связанных вопросов^_^