Android JNI c ++文件编译

时间:2013-06-04 14:06:38

标签: eclipse java-native-interface

我在Android开发中使用JNI。我想知道编译器在哪里找到引用的.h文件?

jni/jni_part.cpp中,它包含了许多.h文件。 Opencv相关文件由SDK定义,但“cartoon.h”肯定是项目指定的标题。但我在项目文件夹中找不到它。那么eclipse在每次运行时都会编译JNI c ++代码吗?如果是这样,eclipse会在哪些目录中找到这些标题?

也许这是JNI的基础,但我不熟悉它。因此,PLZ用一两句话帮助我。或者你可以在Android中粘贴一个简单的JNI教程,eclipse。

#include <jni.h>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/features2d/features2d.hpp>


#include "cartoon.h"
#include "ImageUtils.h" // Handy functions for debugging OpenCV images, by Shervin Emami.


using namespace std;
using namespace cv;

extern "C" {

.....

这是我的eclipse项目文件夹结构

/project
  /jni
    jni_part.cpp
  /src
    something.java

2 个答案:

答案 0 :(得分:2)

你需要开始使用android-ndk将.c,.cpp文件编译成.so库对象,然后你可以在android项目中使用它。

请参阅Android NDK开始使用。 http://developer.android.com/tools/sdk/ndk/index.html#GetStarted

您可以在NDK下载中找到示例。

答案 1 :(得分:0)

如果Eclipse“知道”磁盘上cartoon.h文件的位置,它会帮助您找到它 - 将光标放在#include行上并按 F3

关于您的另一个问题:只有相关文件(来源,标题或mk)发生变化时,Eclipse才会编译。