69

Android Studio を使用して、Gradle ビルド ツールを使用してアプリを開発したいと考えています。に OpenCV リポジトリとライブラリを挿入できませんbuild.gradle。私の.gradleファイルは以下のようなものです:

buildscript {
    repositories {
        mavenCentral()

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.android.support:support-v4:13.0.+'
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 16
    }
}

プロジェクトに OpenCV を追加するにはどうすればよいですか?

4

13 に答える 13

136

これは、Android Studio で非常に簡単に行うことができます。

以下の手順に従って、Open CV をプロジェクトにライブラリとして追加します。

  1. librariesプロジェクトのメイン ディレクトリの下にフォルダーを作成します。たとえば、プロジェクトがOpenCVExamplesの場合、フォルダーを作成しOpenCVExamples/librariesます。

  2. SDK「\OpenCV-2.4.8-android-sdk\sdk」がある場所に移動します。ここにjavaフォルダーがあり、名前を に変更しますopencv

  3. 次に、完全な opencv ディレクトリを SDK から作成したライブラリ フォルダーにコピーします。

  4. ディレクトリに次の内容のbuild.gradleファイルを作成しますopencv

    apply plugin: 'android-library'
    
    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:0.9.+'
        }
    }
    
    android {
        compileSdkVersion 19
        buildToolsVersion "19.0.1"
    
        defaultConfig {
            minSdkVersion 8
            targetSdkVersion 19
            versionCode 2480
            versionName "2.4.8"
        }
    
        sourceSets {
            main {
                manifest.srcFile 'AndroidManifest.xml'
                java.srcDirs = ['src']
                resources.srcDirs = ['src']
                res.srcDirs = ['res']
                aidl.srcDirs = ['src']
            }
        }
    }
    
  5. アプリケーションのメイン ディレクトリにある settings.gradle ファイルを編集し、次の行を追加します。

    include ':libraries:opencv'
    
  6. プロジェクトを Gradle と同期すると、次のようになります。

    画面 1

  7. プロジェクトを右クリックしOpen Module Settings、左側のリストから [モジュールを選択] をクリックし、アプリケーションのモジュールをクリックして、[依存関係] タブをクリックし、[+] ボタンをクリックして新しいモジュールの依存関係を追加します。

    ここに画像の説明を入力

  8. を選択しModule dependencyます。選択するモジュールのリストを含むダイアログが開きます。「:libraries:opencv」を選択します。

    ここに画像の説明を入力

  9. jniLibsその場所にフォルダーを作成し、/app/src/main/*.so ファイル (armeabi、armeabi-v7a、mips、x86) を含むすべてのフォルダーをjniLibsOpenCV SDK からコピーします。

    ここに画像の説明を入力

  10. [OK] をクリックします。これですべてが完了し、OpenCV を楽しんでください。

于 2014-03-15T17:29:38.153 に答える
7

Android Studio と Gradle を使用して、OpenCV を含む Android NDK アプリケーションをビルドする方法についての新しい投稿を投稿しました。詳細については、こちらを参照してください。2 つの方法をまとめました。

(1) ndk-buildGradleタスク内で実行

sourceSets.main.jni.srcDirs = []

task ndkBuild(type: Exec, description: 'Compile JNI source via NDK') {
    ndkDir = project.plugins.findPlugin('com.android.application').getNdkFolder()
    commandLine "$ndkDir/ndk-build",
            'NDK_PROJECT_PATH=build/intermediates/ndk',
            'NDK_LIBS_OUT=src/main/jniLibs',
            'APP_BUILD_SCRIPT=src/main/jni/Android.mk',
            'NDK_APPLICATION_MK=src/main/jni/Application.mk'
}

tasks.withType(JavaCompile) {
    compileTask -> compileTask.dependsOn ndkBuild
}

(2)ndk-build外部ツールで実行

パラメーター: NDK_PROJECT_PATH=$ModuleFileDir$/build/intermediates/ndk NDK_LIBS_OUT=$ModuleFileDir$/src/main/jniLibs NDK_APPLICATION_MK=$ModuleFileDir$/src/main/jni/Application.mk APP_BUILD_SCRIPT=$ModuleFileDir$/src/main/jni/Android.mk V=1

詳細はこちら

于 2014-10-22T14:24:02.727 に答える
7
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
    maven {
        url 'http://maven2.javacv.googlecode.com/git/'
    }
}

dependencies {
    compile 'com.android.support:support-v4:13.0.+'
    compile 'com.googlecode.javacv:javacv:0.5'
    instrumentTestCompile 'junit:junit:4.4'
}

android {
    compileSdkVersion 14
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 14
    }
}

これは私のために働いています:)

于 2013-07-22T00:48:12.727 に答える
5

Android Studio 1.2 + OpenCV-2.4.11-android-sdk (.zip) でも動作します。

次の手順を実行してください。

1) 「これは Android Studio で非常に簡単に実行できます。以下の手順に従って、OpenCV をプロジェクトにライブラリとして追加します。」で始まる回答に従ってください。TGMCiansによる。

2)<yourAppDir>\libraries\opencv新しく作成build.gradleしたフォルダーを変更します (TGMCians の回答のステップ 4、OpenCV2.4.11-android-sdk に適合し、gradle 1.1.0 を使用):

apply plugin: 'android-library'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.0'
    }
}

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 21
        versionCode 2411
        versionName "2.4.11"
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            res.srcDirs = ['res']
            aidl.srcDirs = ['src']
        }
    }
}

3) ディレクトリにある *.so ファイルは、"armeabi", "armeabi-v7a", "mips", "x86"(デフォルトの OpenCV の場所) の下にあります: ..\OpenCV-2.4.11-android-sdk\OpenCV-android-sdk\sdk\native\libs(TGMCians の回答のステップ 9)。

楽しんでください。これが役に立った場合は、肯定的な評判をお願いします。回答に直接答えるには50が必要です(残り19):)

于 2015-05-13T12:28:15.607 に答える
3

これらは、Android Studio 1.2 で OpenCV を使用するために必要な手順です。

  • OpenCVをダウンロードしてアーカイブを抽出する
  • Android Studio でアプリ プロジェクトを開きます
  • [ファイル] -> [新規] -> [モジュールのインポート...]に移動します。
  • sdk/java先ほど解凍したディレクトリを選択
  • モジュールopencv
  • [次へ] を押してから[完了]を押します
  • インポートされた OpenCV モジュールの下で build.gradle を開き、マシンにあるバージョンに更新compileSdkVersionbuildToolsVersionます
  • アプリに追加compile project(':opencv')build.gradle

    dependencies {
        ...
        compile project(':opencv')
    }
    
  • プロジェクトをGradleファイルと同期するを押します

于 2015-05-11T08:26:43.343 に答える
2

Java プロジェクトを OpenCV SDK から Android Studio gradle プロジェクトにインポートし、https://github.com/ctodobom/OpenCV-3.1.0-Androidで利用できるようにしました。

build.gradlejitpack.io サービスのおかげで、ファイルに 2 行を追加するだけでプロジェクトに含めることができます。

于 2016-02-20T03:12:38.667 に答える
1

AndroidManifest.xml ファイルには、次の権限と機能が必要です。これがないと、次のダイアログ ボックスが表示されます。

「お使いのデバイスはカメラをサポートしていないようです (またはロックされています)。アプリケーションは閉じられます」

  <uses-permission android:name="android.permission.CAMERA"/>

    <uses-feature android:name="android.hardware.camera" android:required="false"/>
    <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
    <uses-feature android:name="android.hardware.camera.front" android:required="false"/>
    <uses-feature android:name="android.hardware.camera.front.autofocus" android:required="false"/>
于 2015-07-22T03:18:54.000 に答える