2013-10-17 53 views
4

我正在開發一個使用opencv庫的opencv管理器應用程序的android應用程序。 它需要OpenCV的經理以前安裝, 我想OpenCV的經理整合我的應用程序中,這樣它不需要安裝OpenCV的經理提前外部如何在Android應用程序中集成opencv管理器

感謝

+0

可能重複[如何OpenCV的經理在Android中整合應用程序](http://stackoverflow.com/questions/20259309/how-to-integrate-opencv-manager-in-android-app) – Kiran

回答

4

1 - 添加OpenCV庫項目到您的工作區(使用菜單文件 - >導入 - >工作區中的現有項目。)

2 - 在應用程序項目中添加對項目 - >屬性 - > Android - >庫 - > OpenCV Java SDK的引用。添加選擇的OpenCV庫 - 2.4.8。

3 - 添加一個文件夾並命名爲 「JNI」

4 - 添加Android.mk文件到文件夾JNI。它的身體應該如下圖所示:

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

# OpenCV 
OPENCV_CAMERA_MODULES:=on 
OPENCV_INSTALL_MODULES:=on 
OPENCV_LIB_TYPE:=STATIC 
include ../../sdk/native/jni/OpenCV.mk 

5 - 將一個Application.mk文件添加到jni文件夾中。它的身體應該如下:

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

6 - 這對你的活動

static { 
     if (!OpenCVLoader.initDebug()) { 
      // Handle initialization error 
     } 
    } 

7添加 - 如果你已經添加以下代碼到你的活動,註釋掉OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_8 ,this,mLoaderCallback); 您不需要在恢復事件中加載OpenCV。

@Override 
    public void onResume() { 
     super.onResume(); 
     //OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_8, this, mLoaderCallback); 
    } 

    private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { 
     @Override 
     public void onManagerConnected(int status) { 
      switch (status) { 
      case LoaderCallbackInterface.SUCCESS: 
       //OpenCV loaded successfully 
       break; 
      default: 
       super.onManagerConnected(status); 
       break; 
      } 
     } 
    }; 

看一看這太: http://docs.opencv.org/trunk/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html#application-development-with-static-initialization

+0

謝謝,我沒有機會嘗試你的建議。但我'如果你的解決方案看起來很合理,你會爲你的解決方案投票。 –

+0

OpenCVLoader.initDebug()仍然爲我返回false。 –

0

得到通過使用該LIB從我的應用程序安裝開了Cv另一種解決方案 AutoInstaller

相關問題