- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我目前正面临某个本地编译问题。需要说明的是,我已经完成了我的 opencv-ndk 配置,没有出现任何错误。事实上,我已经从源代码编译并执行了一些示例和教程。但是,当我尝试编译它时,它给我一个错误,表明我在我的库中丢失了一些东西。下面是来自 eclipse 的日志文件。注意,在 eclipse 项目中,我在 obj->local->armeabi-v7a->objs 目录下有 libopencv_java.so。
03-19 10:14:11.142: D/dalvikvm(6360): Trying to load lib /data/app-lib/com.example.detectimage-2/libnative_sample.so 0x4141bc60
03-19 10:14:11.152: E/dalvikvm(6360): dlopen("/data/app-lib/com.example.detectimage-2/libnative_sample.so") failed: Cannot load library: soinfo_link_image(linker.cpp:1635): could not load library "libopencv_java.so" needed by "libnative_sample.so"; caused by load_library(linker.cpp:745): library "libopencv_java.so" not found
03-19 10:14:11.152: E/JNI(6360): WARNING: Could not load libmysharedlibrary.so
03-19 10:14:11.152: I/Sample::Activity(6360): Instantiated new class com.example.detectimage.DetectImageActivity
03-19 10:14:11.162: I/Sample::Activity(6360): onCreate
03-19 10:14:11.162: D/dalvikvm(6360): Trying to load lib /data/app-lib/com.example.detectimage-2/libnative_sample.so 0x4141bc60
03-19 10:14:11.162: E/dalvikvm(6360): dlopen("/data/app-lib/com.example.detectimage-2/libnative_sample.so") failed: Cannot load library: find_library(linker.cpp:889): "/data/app-lib/com.example.detectimage-2/libnative_sample.so" failed to load previously
03-19 10:14:11.162: W/dalvikvm(6360): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lcom/example/detectimage/CameraPreview;
03-19 10:14:11.172: D/AndroidRuntime(6360): Shutting down VM
03-19 10:14:11.172: W/dalvikvm(6360): threadid=1: thread exiting with uncaught exception (group=0x40f06ae0)
03-19 10:14:11.182: E/AndroidRuntime(6360): FATAL EXCEPTION: main
如果您还需要我的 Android.mk 文件
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
OPENCV_INSTALL_MODULES:=on
OPENCV_CAMERA_MODULES:=off
include D:\Development\OpenCV-2.4.8-android-sdk\sdk\native\jni\OpenCV.mk
LOCAL_C_INCLUDES:= D:\Development\OpenCV-2.4.8-android-sdk\sdk\native\jni\include
LOCAL_MODULE := native_sample
LOCAL_CFLAGS := -Werror -O3 -ffast-math
LOCAL_LDLIBS += -llog
LOCAL_SRC_FILES := jni_part.cpp
include $(BUILD_SHARED_LIBRARY)
坦率地说,我已经搜索了所有资源,并尝试了很多,但就是行不通。也许我是这个话题的新手,某些我无法遵循的高级解决方案。我希望我能在这里得到更好的理解。非常感谢您的帮助。
最佳答案
看起来这是一个运行时错误,您可以毫无问题地构建您的 native 代码。为了在您的 .apk 中包含任何必要的 .so 文件,您需要使它们在您要部署的项目的 lib/子目录中可用。
这可以像手动复制一样简单,但 ant 应该足够聪明,可以为您复制。如果它没有这样做,则可能还有其他事情正在发生。
另一种选择是静态链接到 OpenCV。您可以通过在将 OpenCV.mk 包含在您自己的 Android.mk 中之前添加此行来执行此操作:
OPENCV_LIB_TYPE :=STATIC
当然,这只有在您的 OpenCV 构建附带静态库 (lib*.a) 时才有意义。您会注意到,通过静态链接到 OpenCV,您的 .so 文件的文件大小会略有增加,但不再需要打包 libopencv_java.so。您的 .so 具有 OpenCV 所需的一切。
总而言之,如果您的项目使用任何 .so 文件,请在打包 .apk 时将它们放在/lib 下,以便您的应用程序可以在启动/运行时找到它们。
关于android - 无法加载库 libopencv_java.so,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22495104/
我目前正面临某个本地编译问题。需要说明的是,我已经完成了我的 opencv-ndk 配置,没有出现任何错误。事实上,我已经从源代码编译并执行了一些示例和教程。但是,当我尝试编译它时,它给我一个错误,表
我遇到了一个非常烦人的问题。我有一个使用 Android 版 OpenCV 库的应用程序。问题是它抛出以下异常: 12-07 14:19:27.420: E/AndroidRuntime(19108)
我正尝试按照 http://code.opencv.org/projects/opencv/wiki/Trunk_OpenCV_for_Android 上的教程进行操作从源代码为 Android 构建
我看过类似的帖子,但没有一个给出正确答案。 设置: Linux Ubuntu 14.04 Android NDK r8e Boost 1.53 OpenCV 2.4.9 在编译时我收到了这个警告: C
帖子底部的更新 我正在尝试在 Android 上使用 OpenCV 人脸识别器,虽然我能够包装 C++ 代码,但我无法使其在 Intel Atom avd 上运行。我不是 100% 确定,但我认为标题
我已经搜索了几个小时,但没有“libopencv_java.so”和“libnative_camera_r2.2.2.so”的 artifactId 和版本信息。我知道如何将依赖项添加到 pom.xm
我是一名优秀的程序员,十分优秀!