types’jint’无法解析,JNIEnv,jclass

尝试用jni c代码构建一个简单的helloWorld android / java应用程序。 我在Windows 7上使用Eclipse Indigo。在非空间路径中安装了ndk r8,使用ndk-build.cmd使c库最终正常构建。 但是,javah生成的头文件有未解决的错误,

  • 无法解析types’jint’
  • types’JNIEnv’无法解析
  • types’jclass’无法解析

它没有看到jni.h包括昨天,但今天早上重启后,该错误消失了。 我还有一个未解决的JNIEXPORT和JNICALL错误,但#defining似乎已经解决了这个问题。 坚持上面的最后3个。 已经搜索了谷歌和Stack Overflow的答案,但只要有人find解决方案,他们就不会说那个解决方案是什么:(

我在项目属性中检查了java和c / c ++透视图中的包含。 它似乎包括我想要的jni.h目录,我正在使用android-14 for arm平台。 目标是4.0.3 IceCream Sanwich(令人困惑的是API 15?!)。 我打算尝试使用AVD进行测试。 我已经尝试关闭/重新打开项目,从Eclipse中删除并重新导入,但这些都没有奏效。

我错过了一些包括? 我应该在哪些地方设置它们? 真的很感激一些帮助。

最近我遇到了同样的问题。 在我的情况下,问题是我将我的Eclipse项目转换为C ++项目,但我使用了Ctypes。 因此,要解决此问题,我只需从项目目录中删除.project文件中的org.eclipse.cdt.core.ccnature

  com.android.ide.eclipse.adt.AndroidNature org.eclipse.jdt.core.javanature org.eclipse.cdt.core.cnature org.eclipse.cdt.core.ccnature org.eclipse.cdt.managedbuilder.core.managedBuildNature org.eclipse.cdt.managedbuilder.core.ScannerConfigNature edu.umd.cs.findbugs.plugin.eclipse.findbugsNature  

然后重启Eclipse。 有关更多信息,请阅读此内容 。

右键单击项目并转到属性属性。

转到C / C ++ General-> Paths and Symbols

Includes-> GNU C中添加相当于:

%ndkroot%\platforms\android-8\arch-arm\usr\include

您可能想要指向NDK的其他平台版本,只需更改路径的android-8部分即可。

尝试在#include指令之前添加#undef __cplusplus ,如下所示:

 #undef __cplusplus #include  #include  

这将迫使Eclipse考虑NDK对象的non-c++定义。