原生活动OpenCV4Android不';行不通

原生活动OpenCV4Android不';行不通,android,opencv,logcat,native-activity,Android,Opencv,Logcat,Native Activity,我已经下载了最新版本的OpenCV4Android,即2.4.5版本,并在下载了所有正确的插件后将其导入EclipseJuno 除了本机活动之外,所有教程都在我的Android emulator上运行良好。当我尝试在模拟器上运行它时,应用程序会停止,并显示以下消息:“OCV本机活动已不幸停止” 我的日志是: 05-05 13:24:54.489: E/AndroidRuntime(884): FATAL EXCEPTION: main 05-05 13:24:54.489: E/AndroidR

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

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

我的日志是:

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)

如何解决此问题?

模拟器找不到本机库

                        System.loadLibrary("native_activity");
您必须首先从openCV_sdk安装apk。该文件在样本上

    example-native-activity.apk

然后您可以在eclipse上使用代码。

您应该首先尝试编译一个库。只需输入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
有用链接: , &
这可能是它失败的原因之一:

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


其次,检查项目是否包含libs/[architecture]/lib[module name]。因此,在生成/自动生成之后。

我已经首先安装了本机活动,如果使用“adb install”安装,则应用程序可以正常工作。但是,如果我尝试从Eclipse运行应用程序,控制台中会出现以下结果:2013-05-05 16:51:47-OpenCV示例-本机活动]由于不同的应用程序签名,重新安装失败。[2013-05-05 16:51:47-OpenCV示例-本机活动]您必须执行应用程序的完全卸载。警告:这将删除应用程序数据![2013-05-05 16:51:47-OpenCV示例-本机活动]请执行“adb uninstall org.OpenCV.samples.NativeActivity”我也尝试添加android本机支持,只需单击项目并选择“添加本机支持”,但它没有显示要添加的相对正确的.so文件。为什么?