我正在尝试运行适用于 Android 的 opencv 示例。它不起作用。
java.lang.RuntimeException: Unable to instantiate activity
ComponentInfo{org.opencv.samples.puzzle15/org.opencv.samples.
puzzle15.Puzzle15Activity}: java.lang.ClassNotFoundException: Didn't find class
"org.opencv.samples.puzzle15.Puzzle15Activity" on path:
DexPathList[[zip file "/data/app/org.opencv.samples.puzzle15-
1.apk"],nativeLibraryDirectories=
[/data/app-lib/org.opencv.samples.puzzle15-1, /vendor/lib, /system/lib]]
这是什么意思,我该如何解决?我想要具体的步骤来解决它。
完整日志:
10-25 14:03:09.794: E/AndroidRuntime(958): FATAL EXCEPTION: main
10-25 14:03:09.794: E/AndroidRuntime(958): java.lang.RuntimeException: Unable to
instantiate activity ComponentInfo{org.opencv.samples.puzzle15/
org.opencv.samples.puzzle15.Puzzle15Activity}: java.lang.ClassNotFoundException:
Didn't find class "org.opencv.samples.puzzle15.Puzzle15Activity" on path:
/data/app/org.opencv.samples.puzzle15-2.apk
10-25 14:03:09.794: E/AndroidRuntime(958): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106)
10-25 14:03:09.794: E/AndroidRuntime(958): at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
10-25 14:03:09.794: E/AndroidRuntime(958): at
android.app.ActivityThread.access$600(ActivityThread.java:141)
10-25 14:03:09.794: E/AndroidRuntime(958): at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
10-25 14:03:09.794: E/AndroidRuntime(958): at
android.os.Handler.dispatchMessage(Handler.java:99)
10-25 14:03:09.794: E/AndroidRuntime(958): at
android.os.Looper.loop(Looper.java:137)
10-25 14:03:09.794: E/AndroidRuntime(958): at
android.app.ActivityThread.main(ActivityThread.java:5041)
10-25 14:03:09.794: E/AndroidRuntime(958): at
java.lang.reflect.Method.invokeNative(Native Method)
10-25 14:03:09.794: E/AndroidRuntime(958): at
java.lang.reflect.Method.invoke(Method.java:511)
10-25 14:03:09.794: E/AndroidRuntime(958): at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
10-25 14:03:09.794: E/AndroidRuntime(958): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
10-25 14:03:09.794: E/AndroidRuntime(958): dalvik.system.NativeStart.main(NativeMethod)
10-25 14:03:09.794: E/AndroidRuntime(958): Caused by: java.lang.ClassNotFoundException:
Didn't find class "org.opencv.samples.puzzle15.Puzzle15Activity" on path:
/data/app/org.opencv.samples.puzzle15-2.apk
10-25 14:03:09.794: E/AndroidRuntime(958): at
dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
10-25 14:03:09.794: E/AndroidRuntime(958): at
java.lang.ClassLoader.loadClass(ClassLoader.java:501)
10-25 14:03:09.794: E/AndroidRuntime(958): at
java.lang.ClassLoader.loadClass(ClassLoader.java:461)
10-25 14:03:09.794: E/AndroidRuntime(958): at
android.app.Instrumentation.newActivity(Instrumentation.java:1054)
10-25 14:03:09.794: E/AndroidRuntime(958): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097)
从这里导入后适用于 Android 的 OpenCV http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/O4A_SDK.html并下载ADT 捆绑包 http://developer.android.com/sdk/index.html
而不是这个:
Warning : After the initial import, on a non-Windows (Linux and Mac OS) operating system Eclipse will still show build errors for applications with native C++ code. To resolve the issues, please do the following:
Open Project Properties -> C/C++ Build, and replace “Build command” text to "${NDKROOT}/ndk-build" (remove .cmd at the end).
尝试以下步骤:
下载 ndk 版本安卓NDK http://developer.android.com/tools/sdk/ndk/index.html
指定 NDK 位置:
Windows >>> 首选项 >> Android >> NDK >> 设置 NDK 的位置(您已从上面的链接下载)
获取项目位置:
右键单击项目>>>属性>>资源>>位置
例如:位置:D:\OpenCV-2.4.6-android-sdk-r2\OpenCV-2.4.6-android-sdk\samples\15-puzzle
使用cmd构建项目:
D:\OpenCV-2.4.6-android-sdk-r2\OpenCV-2.4.6-android-sdk\samples\15-puzzle>D:\android-ndk-r9\ndk-build
D:\android-ndk-r9\ndk-build(你的 NDK 路径)
注意:确保您已包含库项目并安装了 OpenCV Manager
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)