未解决的包含在JNI的java头中

这是我的java文件,我想为android opencv应用程序使用javah生成头文件.

package com.hosa;

public class edgejava{
static{
    System.loadLibrary("edgejava");
}
public native int main(``);
}

生成的头文件如下.

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_hosa_edgejava */

#ifndef _Included_com_hosa_edgejava
#define _Included_com_hosa_edgejava
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class:     com_hosa_edgejava
* Method:    main
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_com_hosa_edgejava_main
(JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif

eclipse指出在头文件中包含jni.h是未解决的.
解决这个问题需要采取的步骤是什么?

问候,
srijith

我也遇到过这个问题所以对于那些偶然发现这个问题的人来说……

我从日食中解决了JNI问题 – 你可能已经完成了第1步或类似的事情

>文件 – >新 – >其它 – > C>转换为C项目
>点击项目负责人 – >属性 – > C一般 – >路径和符号
>在GNU和GNUC语言条目下添加类似于此的路径

/ NDK /平台/ Android的9 /弓形臂的/ usr /包括

您的路径将根据您的设置方式,平台编号等而有所不同.

完成后,在提示时重建索引
>关闭项目,重新打开它,然后清理构建(或者可能立即发生)

在我的情况下,然后发现JNI.h但是JNIEnv等仍然无法识别,即使它们在JNI.h文件中.

还要注意任何有这个问题的人都不会阻止你建立,你只需要关闭有问题的文件,然后打开和关闭你的项目以摆脱错误(多么痛苦)

更新:固定!

在Indigo版本中,从菜单/对话框中执行以下操作

Window-> Preferences-> C/C++ – >索引检查“Index Unused Headers”如果需要,重新索引/构建

您可能还需要在上面提到的包含上面添加“/NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/lib/gcc/arm-linux-androideabi/4.4.3/include”到语言条目.

所有符号现在都被认可了 – 希望这可以帮助某些人让我疯狂.

翻译自:https://stackoverflow.com/questions/10087853/unresolved-inclusion-in-the-java-header-in-jni

转载注明原文:未解决的包含在JNI的java头中