0

externtowライブラリを使用して、サーフ アルゴリズムを使用して追跡オブジェクトの Android アプリケーションを構築したいので、このチュートリアルUsing OpenCV Nonfree Module (SIFT, SURF) in Android NDK Projects を使用しました

最初のライブラリはlibobjtrack_opencv_jni.so(追跡に使用)、他の2つはlibopencv_java.soであり、libobjtrack_opencv_jni.so この結果を取得するために終了しました:

Android.mk:

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := sift_prebuilt
LOCAL_SRC_FILES := libnonfree.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE    := opencv_java_prebuilt
LOCAL_SRC_FILES := libopencv_java.so
include $(PREBUILT_SHARED_LIBRARY)


include $(CLEAR_VARS)
LOCAL_MODULE    := objtrack_opencv_jni
LOCAL_SRC_FILES := libobjtrack_opencv_jni.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
OPENCV_LIB_TYPE        := STATIC
OPENCV_INSTALL_MODULES:=on
OPENCV_CAMERA_MODULES:=off
include C:/OpenCV-2.4.5-android-sdk/sdk/native/jni/OpenCV.mk
LOCAL_C_INCLUDES:= C:/OpenCV-2.4.5-android-sdk/sdk/native/jni/include
LOCAL_MODULE    := test_sift12
LOCAL_CFLAGS    := -Werror -O3 -ffast-math
LOCAL_LDLIBS    += -llog -ldl
LOCAL_SHARED_LIBRARIES := sift_prebuilt opencv_java_prebuilt objtrack_opencv_jni
LOCAL_SRC_FILES := test_sift.cpp
include $(BUILD_SHARED_LIBRARY)

ビルドは成功しましtest_sift12.soたが、..を実行すると動作しません。問題はin file.apkの使用にあると思います。あなたの助けが必要ですPREBUILT_SHARED_LIBRARYandroid.mk

4

1 に答える 1

0

アクティビティでそのライブラリを使用するライブラリをロードします。

このように

public class YourClassName extends Activity {

.....

//add the following code at the end of the class


  static 
  {
      System.loadlibrary("opencv_java");
      System.loadlibrary("objtrack_opencv_jni");
      System.loadlibrary("nonfree");
      System.loadlibrary("test_sift12");
   }
}

次の名前を変更することをお勧めします

LOCAL_MODULE    := sift_prebuilt

LOCAL_MODULE    := nonfree

LOCAL_MODULE    := opencv_java_prebuilt

LOCAL_MODULE    := opencv_java

の名前を変更することを忘れないでくださいLOCAL_SHARED_LIBRARIES

于 2013-11-30T19:26:03.220 に答える