【发布时间】:2012-07-24 21:17:14
【问题描述】:
尝试使用 jni c 代码构建一个简单的 helloWorld android/java 应用程序。我在 Windows 7 上使用 Eclipse Indigo。在非空格路径中安装了 ndk r8,最终使用 ndk-build.cmd 构建了 c 库。但是javah生成的头文件有未解决的错误,
- 无法解析类型“jint”
- 无法解析类型“JNIEnv”
- 无法解析类型“jclass”
昨天没有看到 jni.h 包含,但今天早上重新启动后,该错误消失了。我也有一个未解决的 JNIEXPORT 和 JNICALL 错误,但#defining 它们似乎已经解决了这个问题。卡在上面的最后3个。 已经在谷歌和 Stack Overflow 上搜索了答案,但是一旦有人找到解决方案,他们就不会说那个解决方案是什么:(
我已经在项目属性中检查了 java 和 c/c++ 透视图中的包含。它似乎包括我想要的 jni.h 目录,我将 android-14 用于 arm 平台。目标是 4.0.3 IceCream Sanwich(令人困惑的是 API 15?!)。我打算尝试使用 AVD 进行测试。 我试过关闭/重新打开项目,从 Eclipse 中删除并重新导入,但这些都没有奏效。
我错过了一些包含吗?我应该在哪里设置它们? 非常感谢一些帮助。
【问题讨论】:
-
#include
使用 jint 和 JNIEnv 所需的唯一头文件是 jni.h。但是,您必须在 extern "C" 中使用它们。可能会发布您的代码的某些部分可以提供帮助 -
如果代码是用 ndk-build 构建的,那么你的问题就出在 eclipse 上。在菜单中的某个地方,它需要指向 ndk 包含,或者只是禁用 ndk 插件,所以它不在乎。
-
我无法弄清楚如何粘贴代码块而不像纯文本一样出现。可以说这是一个非常简单的自动生成的头文件,用于将两个数字相乘的函数。 @chris 我应该在哪里禁用 ndk 插件?
标签: java android eclipse android-ndk