3

我已经下载了最新版本的OpenCV4Android,2.4.5版本,并在下载了所有正确的插件后将其导入Eclipse Juno。

除了 Native Activity,所有教程都在我的 Android 模拟器上运行良好。当我尝试在我的模拟器上运行它时,应用程序停止并显示以下消息:“OCV Native Activity 已不幸停止”。

我的日志是:

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)

我能做些什么来解决这个问题?

4

3 回答 3

0

模拟器找不到本机库

                        System.loadLibrary("native_activity");

您必须首先从 openCV_sdk 安装 apk。该文件在样本上

    example-native-activity.apk

然后你可以在eclipse上玩代码。

于 2013-05-05T14:23:35.327 回答
0

您应该首先尝试编译一个库。只需进入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

于 2013-05-28T00:53:07.980 回答
0

这可能是它失败的原因之一:

CDT Builder 是为 Windows 主机、Linux 或 MacOS 配置的……删除“.cmd”并保留“${NDKROOT}/ndk-build”。(转到 Properties -> C/C++ Build -> Builder -> Build command 并删除“.cmd”,可能您可能还需要删除打开引号(“)和关闭引号(”)。)

其次检查项目是否在构建/自动构建之后包含 libs/[architecture]/lib[module-name].so。

于 2013-07-30T11:13:27.963 回答