Нативная активность OpenCV4Android не работает

Я скачал последнюю версию OpenCV4Android, версию 2.4.5, и импортировал ее в Eclipse Juno после загрузки всех необходимых плагинов.

Все учебники хорошо работают на моем эмуляторе Android, кроме Native Activity. Когда я пытаюсь запустить его на моем эмуляторе, приложение останавливается с таким сообщением: "К сожалению, OCV Native Activity остановлена".

И мой logcat:

05-05 13:24:54.489: E/AndroidRuntime(884): FATAL EXCEPTION: main
05-05 13:24:54.489: E/AndroidRuntime(884): java.lang.UnsatisfiedLinkError: Couldn't load native_activity from loader dalvik.system.PathClassLoader[dexPath=/data/app/org.opencv.samples.NativeActivity-2.apk,libraryPath=/data/app-lib/org.opencv.samples.NativeActivity-2]: findLibrary returned null
05-05 13:24:54.489: E/AndroidRuntime(884):  at java.lang.Runtime.loadLibrary(Runtime.java:365)
05-05 13:24:54.489: E/AndroidRuntime(884):  at java.lang.System.loadLibrary(System.java:535)
05-05 13:24:54.489: E/AndroidRuntime(884):  at org.opencv.samples.NativeActivity.CvNativeActivity$1.onManagerConnected(CvNativeActivity.java:22)
05-05 13:24:54.489: E/AndroidRuntime(884):  at org.opencv.android.AsyncServiceHelper$1.onServiceConnected(AsyncServiceHelper.java:318)
05-05 13:24:54.489: E/AndroidRuntime(884):  at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1101)
05-05 13:24:54.489: E/AndroidRuntime(884):  at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1118)
05-05 13:24:54.489: E/AndroidRuntime(884):  at android.os.Handler.handleCallback(Handler.java:725)
05-05 13:24:54.489: E/AndroidRuntime(884):  at android.os.Handler.dispatchMessage(Handler.java:92)
05-05 13:24:54.489: E/AndroidRuntime(884):  at android.os.Looper.loop(Looper.java:137)
05-05 13:24:54.489: E/AndroidRuntime(884):  at android.app.ActivityThread.main(ActivityThread.java:5041)
05-05 13:24:54.489: E/AndroidRuntime(884):  at java.lang.reflect.Method.invokeNative(Native Method)
05-05 13:24:54.489: E/AndroidRuntime(884):  at java.lang.reflect.Method.invoke(Method.java:511)
05-05 13:24:54.489: E/AndroidRuntime(884):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-05 13:24:54.489: E/AndroidRuntime(884):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-05 13:24:54.489: E/AndroidRuntime(884):  at dalvik.system.NativeStart.main(Native Method)

Что я могу сделать, чтобы решить эту проблему?

3 ответа

Это может быть одной из причин неудачи:

CDT Builder настроен для хостов Windows, в Linux или MacOS ... удалите ".cmd" и оставьте "${NDKROOT}/ndk-build". (зайдите в Свойства -> C/C++ Build -> Builder -> команда Build и удалите ".cmd", возможно, вам также может понадобиться удалить открытую кавычку (") и закрыть кавычку (").)

Во-вторых, проверьте, содержит ли проект libs/[архитектура]/lib[имя-модуля].so после сборки / авто-сборки.

Сначала вы должны попытаться скомпилировать библиотеку. Просто введите корень проекта Android и выполните

/home/user/android-ndk-r8b/ndk-build -C ./

другой пример

/home/user/android-ndk-r8b/ndk-build -C /home/user/opencv/OpenCV-2.4.5-android-sdk/samples/face-detection

Это создаст библиотеку в вашей папке, например.

/home/user/opencv/OpenCV-2.4.5-android-sdk/samples/face-detection/libs/armeabi-v7a/libdetection_based_tracker.so

Полезные ссылки: android_dev_intro, O4A_SDK & android

Эмулятор не может найти родную библиотеку

                        System.loadLibrary("native_activity");

Вы должны сначала установить APK из openCV_sdk. файл находится на образцах

    example-native-activity.apk

Тогда вы можете поиграть с кодом на затмении.

Другие вопросы по тегам