私は OpenCV と android NDK が初めてです。サンプルの NDK プログラムから始めるために、ネイティブ関数を持つアクティビティを作成して実装したところ、正常に動作しました。正常にビルドして実行できます。
しかし、CPP ファイルでは、次のヘッダーを挿入します:-
#include <opencv2/core/core.hpp>
私はEclipseで次のようにビルドエラーを取得しています :致命的なエラー: アルゴリズム: そのようなファイルまたはディレクトリのコンパイルは終了しませんでした。作る:[obj/local/armeabi/objs/OpenCVTest/OpenCVTest.o] エラー 1 *
ここに私のJavaファイルがあります:-
package com.example.opencvtest;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.widget.TextView;
public class OpenCVMain extends Activity {
public final String TAG = "OPENCVLOG";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(TAG,"loading the library OpenCVTest.so");
System.loadLibrary("OpenCVTest");
Log.i(TAG,"Loaded the library successfully");
TextView t = new TextView(this);
t.setText(nativeDemo());
setContentView(t);
//setContentView(R.layout.activity_open_cvmain);
}
public native String nativeDemo();
}
JNI cpp ファイル:-
#include <jni.h>
#include <opencv2/core/core.hpp>
extern "C"
{
jstring Java_com_example_opencvtest_OpenCVMain_nativeDemo(JNIEnv* env, jobject obj);
}
jstring Java_com_example_opencvtest_OpenCVMain_nativeDemo(JNIEnv* env, jobject obj)
{
return env->NewStringUTF("Hello Native !!!!");
}
Android.mk ファイル:-
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
include ${OPENCVROOT}/sdk/native/jni/OpenCV.mk
LOCAL_MODULE := OpenCVTest
LOCAL_SRC_FILES := OpenCVTest.cpp
include $(BUILD_SHARED_LIBRARY)
OpenCV ヘッダー ファイルのインポート中にどこで間違いを犯しているのか教えてください。また、「アルゴリズム」ファイルには、core.hpp の 56 行目で「アルゴリズム」ファイルを CTRL キーを押しながらクリックすると、Eclipse でアクセスできます。