0

我是 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 中访问“算法”文件。

4

1 回答 1

0

您是否创建了“ Application.mk ”文件?

这个答案可能会有所帮助。

于 2013-03-15T08:43:33.820 回答