2

我在我的 Android 应用程序中使用 cvBlobsLib 时遇到问题。我正在使用带有 NDK 的 Eclipse。

我已经下载了库 cvBlobsLib,使用该库的源文件创建了一个 Eclipse 项目,使用 Eclipse 成功编译并创建了文件 libcvblobslib.a

当尝试在我的项目中使用 libcvblobslib.a 文件时(再次在 Eclipse 中 - Android+NDK 项目),我收到一条错误消息:

所需库的存档:项目“MyProject”中的“jni/cvblobslib_headers/libcvblobslib.a”无法读取或不是有效的 ZIP 文件。

我无法弄清楚问题是什么......我将 libcvblobslib.a 文件添加到构建路径中,所有头文件以及 libcvblobslib.a 都在路径 jni/cvblobslib_headers/ 下

我可以在没有 cvBlobsLib 的情况下使用 openCV 库,所以我知道 NDK 的所有路径和配置都是正确的。

我的 android.mk 是:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := cvBlobsLib
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/cvblobslib_headers/
LOCAL_SRC_FILES := cvblobslib_headers/libcvblobslib.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
include ../../sdk/native/jni/OpenCV.mk
LOCAL_MODULE    := native_sample
LOCAL_SRC_FILES := jni_part.cpp 
LOCAL_STATIC_LIBRARIES = cvBlobsLib
LOCAL_LDLIBS +=  -llog -ldl
include $(BUILD_SHARED_LIBRARY)

我的 Application.mk 是:

APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := armeabi-v7a x86
APP_PLATFORM := android-11

请帮忙!

4

1 回答 1

0

好的,我找到了一个部分解决方案,但它不使用静态库方式。相反,我将源文件复制到我的项目中并将它们编译为共享库。

编译现在需要一些时间,但至少它现在可以工作......

如果有人知道如何静态地做到这一点,我会很高兴知道我错过了什么......

于 2013-01-07T22:44:38.403 回答