我在使用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
请帮助!
答案 0 :(得分:0)
好的,我找到了部分解决方案,但它没有使用静态库方式。相反,我将源文件复制到我的项目中,并将它们编译为共享库。
编译现在需要一些时间,但至少现在可以正常工作......
如果有人知道如何静态地做,我会很高兴知道我错过了什么......