无法解析类型“jint”,而 JNIEnv,jclass

2022-09-02 23:30:02

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

  • 无法解析类型“jint”
  • 无法解析类型“JNIEnv”
  • 无法解析类型“jclass”

它昨天没有看到jni.h包含,但是在今天早上重新启动后,该错误已经消失。我也有一个未解决的JNIEXPORT和JNICALL错误,但#defining他们似乎已经解决了这个问题。卡在上面的最后3个。搜索了Google和Stack Overflow的答案,但是一旦有人找到解决方案,他们就不会说该解决方案:(

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

我是否遗漏了一些包含内容?我应该设置哪些以及我应该在哪里设置它们?真的非常感谢一些帮助。


答案 1

右键单击项目,然后转到属性属性。

转到 C/C++通用>路径和符号

Include->GNU C 中,添加以下等效项:

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

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


答案 2

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

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

然后重新启动 Eclipse。有关更多信息,您可以阅读此内容


推荐