使用cvBlobsLib构建Android NDK应用程序时出错

时间:2013-01-06 23:51:02

标签: android opencv cvblobslib

我在使用Android应用程序时使用cvBlobsLib时遇到问题。我正在使用Eclipse和NDK。

我已经下载了库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

请帮助!

1 个答案:

答案 0 :(得分:0)

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

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

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