2016년 8월 28일 일요일

[안드로이드] opencv 임포트 시 intent 에러 발생 해결


opencv를 롤리팝에서 임포트해서 쓸 때 intent 에러가 나는 경우가 있습니다.
opencv 패키지 설치 여부를 검사하고 없으면 playstore에서 가져와야 하는데 여기서 패키지명을 지정해 주지 않아서 발생하는 것 같습니다.
opencv 라이브러리 파일 중 AsyncServiceHelper.java 파일을 열어서  initOpenCV 메소드를 아래와 같이 변경 해 주면 문제를 해결 할 수 있습니다.

[자세한 내용 보기] http://stackoverflow.com/questions/27470313/opencv-service-intent-must-be-explicit-android-5-0-lolipop


public static boolean initOpenCV(String Version, final Context AppContext,
        final LoaderCallbackInterface Callback) {
    AsyncServiceHelper helper = new AsyncServiceHelper(Version, AppContext,
            Callback);
    Intent intent = new Intent("org.opencv.engine.BIND");
    intent.setPackage("org.opencv.engine");
    if (AppContext.bindService(intent, helper.mServiceConnection,
            Context.BIND_AUTO_CREATE)) {
        return true;
    } else {
        AppContext.unbindService(helper.mServiceConnection);
        InstallService(AppContext, Callback);
        return false;
    }
}

댓글 없음:

댓글 쓰기