我是 OpenCV 和 android NDK 的新手。从一个示例 NDK 程序开始,我编写了一个具有本机功能的活动并实现了它,它工作正常。我能够成功构建和运行它。
但是在 CPP 文件中,我插入以下标题:-
#include <opencv2/core/core.hpp>
我在 Eclipse 上遇到构建错误:- E:/software\java\android_adt\OpenCV-2.4.3.2-android-sdk/sdk/native/jni/include/opencv2/core/core.hpp:56:21:致命错误:算法:没有此类文件或目录编译终止。制作:[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 中访问“算法”文件。