类型'JNICALL'无法解决,?

时间:2012-07-19 12:49:13

标签: eclipse android-ndk

我正试图在日食中使用NDK 但是当关注教程时会弹出这个错误,我不明白它来自哪里

这是我的.h文件

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

#ifndef _Included_com_example_myproject_MainActivity
#define _Included_com_example_myproject_MainActivity
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_example_myproject_MainActivity
 * Method:    getMyData
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_com_example_myproject_MainActivity_getMyData
  (JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif

错误=无法解析类型'JNICALL'

我在代码视图中也有语法错误,但这些错误不会出现在JNIEXPORT出现的错误中

3 个答案:

答案 0 :(得分:2)

在大多数情况下,JNICALL用于Windows。我99%肯定你可以添加

#define JNICALL

(将其定义为空白)

与JNIEXPORT相同。

答案 1 :(得分:1)

转到项目属性 - &gt; C / C ++常规 - &gt;路径和符号。

  1. 选择包含标签,然后点击窗口右侧的添加按钮
  2. 从文件系统
  3. 中选择包含目录

    例如: C:\ Program Files(x86)\ Android \ android-sdk \ NDK \ android-ndk-r10 \ platforms \ android-L \ arch-arm \ usr \ include。

    它会询问您是否要重建,单击是...完成

答案 2 :(得分:0)

我刚遇到这个问题,这是我的解决方案。如果您使用Java 7在Linux上工作,请确保这两个包含路径已添加到您Includes

/usr/lib64/jvm/java-7-oracle/include/linux
/usr/lib64/jvm/java-7-oracle/include