Как загрузить пакет OpenCV Manager в мое приложение для Android? - PullRequest
0 голосов
/ 26 июня 2019

Я работаю над приложением Android, которое использует OpenCV в Android Studio.Мое приложение компилируется и запускается, но при запуске действия, которое загружает OpenCV, я получаю это предупреждение:

"Пакет менеджера OpenCV не найден. Попробуйте установить его?"

Я нажимаю "Да", и приложение Google Play Store открывается, но не может найти OpenCV Manager.Кажется, приложение больше не доступно в Google Play.Однако я бы предпочел, чтобы библиотека OpenCV была включена в мое приложение.Любая помощь приветствуется.Спасибо.

Вот мои настройки: settings.gradle:

include 'Application', ':libhrdataglasses', ':opencv401'

build.gradle для приложения:

apply plugin: 'com.android.application'
buildscript {
    repositories {
        jcenter()
        google()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
    }
}


repositories {
    jcenter()
    google()
}

dependencies {
    implementation 'com.android.support:support-v4:27.0.2'
    implementation 'com.android.support:support-v13:27.0.2'
    implementation 'com.android.support:cardview-v7:27.0.2'
    implementation 'com.android.support:appcompat-v7:27.0.2'
    implementation project(':libhrdataglasses')
    implementation 'android.arch.lifecycle:extensions:1.1.1'
    implementation project(':opencv401')
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
}

// The sample build uses multiple directories to
// keep boilerplate and common code separate from
// the main sample code.
List<String> dirs = [
        'main',     // main sample code; look here for the interesting stuff.
        'common',   // components that are reused by multiple samples
        'template'] // boilerplate code that is generated by the sample template process

android {
    compileSdkVersion 27

    buildToolsVersion '28.0.3'

    defaultConfig {
        minSdkVersion 26
        targetSdkVersion 27
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    sourceSets {
        main {
            dirs.each { dir ->
                java.srcDirs "src/${dir}/java"
                res.srcDirs "src/${dir}/res"
            }
        }
        androidTest.setRoot('tests')
        androidTest.java.srcDirs = ['tests/src']

    }

}

build.gradle для opencv401

    apply plugin: 'com.android.library'

android {
    compileSdkVersion 26
    //buildToolsVersion "x.y.z" // not needed since com.android.tools.build:gradle:3.0.0

    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 26
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_6
        targetCompatibility JavaVersion.VERSION_1_6
    }

    sourceSets {
        main {
            jniLibs.srcDirs = ['../../jni']
            java.srcDirs = ['src']  // TODO Use original files instead of copied into build directory
            aidl.srcDirs = ['src']
            res.srcDirs = ['../opencv401/res']
            manifest.srcFile 'AndroidManifest.xml'
        }
    }
}

dependencies {
implementation 'com.android.support:appcompat-v7:26.1.0'
}

А в моей деятельности:

        @Override
    protected void onResume() {
        super.onResume();
        if (!OpenCVLoader.initDebug()) {
            OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION, this, mOpenCVLoaderCallback);
    } else {

    mOpenCVLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
        }
    }

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

1 Ответ

0 голосов
/ 02 июля 2019
...