私は このチュートリアル をフォローしていますが、Android Studioを使用しています。次の手順を実行しました。
Android Studioで新しいプロジェクトを作成する
OpenCV-2.4.5-sdk/sdk/Javaをモジュールとして追加する
メインモジュールを右クリック->モジュール設定の変更->上記のopencvモジュールを依存関係として追加
私のMainActivityには、次のコードを使用しました(サンプルの1つから削除)。
package com.example.test;
import Android.os.Bundle;
import Android.app.Activity;
import Android.util.Log;
import Android.view.Menu;
import org.opencv.Android.BaseLoaderCallback;
import org.opencv.Android.CameraBridgeViewBase;
import org.opencv.Android.CameraBridgeViewBase.CvCameraViewListener;
import org.opencv.Android.LoaderCallbackInterface;
import org.opencv.Android.OpenCVLoader;
import org.opencv.core.Mat;
public class MainActivity extends Activity implements CvCameraViewListener {
private CameraBridgeViewBase mOpenCvCameraView;
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
switch (status) {
case LoaderCallbackInterface.SUCCESS:
{
Log.i("Yay", "OpenCV loaded successfully");
mOpenCvCameraView.enableView();
} break;
default:
{
super.onManagerConnected(status);
} break;
}
}
};
@Override
public void onResume()
{
super.onResume();
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_5, this, mLoaderCallback);
}
@Override
public void onCameraViewStarted(int width, int height) {
}
@Override
public void onCameraViewStopped() {
}
@Override
public Mat onCameraFrame(Mat inputFrame) {
return null;
}
}
Android Studioのテキストエディターは、インポートしたパッケージ(org.opencv.Androidなど)を識別できましたが、コンパイルすると次のエラーが発生しました。
Gradle: error: package org.opencv.Android does not exist
Gradle: error: package org.opencv.Android does not exist
Gradle: error: package org.opencv.Android.CameraBridgeViewBase does not exist
なぜこれが起こるのか誰か知っていますか?
私はAndroid Studioで同様の問題を抱えていました。私はコードを記述し、Android Studioは私が参照している.jarを表示し、依存関係を宣言していましたが、Gradleがプロジェクトをビルドするときが来ました。
「build.gradle」ファイルを開いて、依存関係を手動で追加する必要がありました。たとえば、これが私の完全なファイルです:
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.Android.tools.build:gradle:0.4'
}
}
apply plugin: 'Android'
dependencies {
compile files('libs/Android-support-v4.jar')
compile files('libs/gson-2.2.4.jar')
compile files('libs/jsoup-1.7.2.jar')
}
Android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 16
}
}
ご想像のとおり、追加した行はGsonとJsoupを参照している行です。
この答え に触発され、これらは私がしたステップです:
compile files('libs/opencv-library-2.4.5.jar')
これで、プロジェクトがビルドされ、問題なく実行されるはずです。
注:OpenCVの新しいバージョン(例2.4.7)では、ライブラリは...\build\Java
。
私は同様の問題に遭遇しました。
私の場合は、Android StudioがGradleの依存関係を追加できませんでした。プロジェクトのgradleファイルに自分で追加する必要がありました。
プロジェクトのコンパイル( ":openCVLibrary2410")
問題は解決しました。これがお役に立てば幸いです。
より最近、私は上記の問題を次の方法で解決しました:
その後、すべてがうまくいきました。 opencvライブラリは私のプロジェクトの他のモジュールです
私のintellij IDEで、私は次のように修正しました:
-(プロジェクト内の)アプリをポイントし、F4をクリックします(モジュール設定はデフォルトでフォーカスされています)
-Android-Gradleを選択します
-タブの依存関係を選択します
-追加(右上の選択+ボタン)依存関係:maven、ファイル、または...によって依存を追加を選択できます。私の場合は、mavenから新しいopencsvを追加します。
-[OK]をクリックして終了すると、プロジェクトが自動的に再構築されます。
できました。
回避策を見つけましたが、今はすべてが機能しています。
Jarファイル(openCV.jar)をビルドする必要があり、それをモジュールではなくライブラリーとして追加しました。最後に、この行を追加したgradle.buildファイルに追加しました。
compile files('libs/openCV.jar')
。
最後に、ライブラリコードを使用し、ビルドはOKです。
これが良いかどうかはわかりません。しかし、それが私がやった方法です。それが役に立てば幸い。
依存関係に追加 Android Studioはフルーツなしバグです。
OpenCVサイト からOpenCV-2.4.5-Android-sdk.Zipをダウンロードします
OpenCV-2.4.5-Android-sdkとしてどこにでも抽出できます。
/home/anthony/Documents/OpenCV-2.4.5-Android-sdk/
IntelliJを開き、インポートを選択します
インポートするフォルダを選択
/home/anthony/Documents/OpenCV-2.4.5-Android-sdk/sdk/Java/
あなたのものは少し異なります、心配しないでください、OpenCV-2.4.5-Android-sdkを抽出した場所を選択してください
インポートウィザードが完了したら、メニューを使用してアプリをビルドします
ビルド->プロジェクトを再ビルド
ファイル->モジュールのインポート
/home/anthony/Documents/OpenCV-2.4.5-Android-sdk/sdk/Java/XXX.iml
私のものはsdk.imlでしたが、あなたのものは何でもかまいませんが、1つしかありません
imlファイル
OpenCV関数の使用を開始するには、次のように入力します
組織をインポートします。
ピリオドを入力すると、IntelliJはオプションのリストをドロップします。
opencv
後は君しだい。