2015-07-31 5 views
0

Мне нужно интегрировать OpenCV 2.4 в мое приложение. Сначала я обнаружил, что для запуска приложения на базе OpenCV требуется OpenCV Manager. Но, после некоторого поиска в Google, я нашел другой способ, используя статическую инициализацию here и here. Я пытался, но он не работает: КодopenCV для Android - проблемы с интеграцией

psudo:

public class MainActivity extends Activity { 

static { 
    if (!OpenCVLoader.initDebug()) { 
     Log.d(TAG,"init failed") 
    } 
} 

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

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

Я пытался, но это не работает. Он показывает одно и то же всплывающее окно для установки openCV Manager.

Я также пытался удалить initAsync() в onResume и mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS); но приложение падает, когда я использую это.

Может ли кто-нибудь вести меня надлежащим образом? и не помечать как дубликат; Есть десятки и hundreads вопросов на SO без ответа.

ответ

0

Я решил его себе. Вам не нужно писать .so расширение после библиотек JNI.

Я написал это в неправильном пути:

System.loadLibrary("lib1.so"); 
System.loadLibrary("lib2.so"); 

В конце концов, я нашел правильный путь:

System.loadLibrary("lib1"); 
System.loadLibrary("lib2"); 

Как уже упоминалось, не нужно писать .so расширение.

Смежные вопросы