我下载了最新版本的OpenCV4Android,2.4.5版本,并在下载了所有正确的插件后将其导入Eclipse Juno。
除了Native Activity之外,所有教程都能在我的Android模拟器上正常运行。当我尝试在我的模拟器上运行它时,应用程序停止并显示以下消息:“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)
我该怎么做才能解决这个问题?
答案 0 :(得分:0)
仿真器无法找到本机库
System.loadLibrary("native_activity");
你必须先从openCV_sdk安装apk。该文件是样本
example-native-activity.apk
然后你可以在eclipse上玩代码。
答案 1 :(得分:0)
您应该首先尝试编译lib。只需输入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
这将在您的文件夹中构建一个lib,例如
/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
答案 2 :(得分:0)
这可能是失败的原因之一:
为Windows主机配置CDT Builder, 在Linux或MacOS上...删除“.cmd”并保留“$ {NDKROOT} / ndk-build”。 (转到属性 - &gt; C / C ++构建 - &gt;构建器 - &gt;构建命令并删除“.cmd”,可能您可能需要删除公开引用(“)并关闭引号(”)。)< / p>
其次在构建/自动构建之后检查项目是否包含libs / [architecture] / lib [module-name] .so。