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

OK、部分的な解決策を見つけましたが、静的ライブラリの方法を使用していません。代わりに、ソース ファイルをプロジェクトにコピーし、共有ライブラリとしてコンパイルしました。

コンパイルには時間がかかりますが、少なくとも今は動作します...

誰かがそれを静的に行う方法を知っていれば、何が欠けているのか喜んで教えてくれます...

于 2013-01-07T22:44:38.403 に答える