Eclipse ADT - 未解析的包含jni.h

时间:2014-04-17 01:16:08

标签: android eclipse android-ndk

在我的Windows平台上,我安装了最新版本的adt bundle(20140321)和ndk(r9d)。安装尽可能干净。环境变量NDK_ROOT,PATH等都已正确定义。

我正在处理的应用程序有一些C ++本机代码。代码在Eclipse之外以及Eclipse中构建都很好。

然而,问题是编辑抱怨jni.h是一个未解决的问题。

项目 - >属性 - > C / C ++常规 - > PathsAndSymbols显示包含目录,其中一个目录是C:\ adt \ ndk \ platforms \ android-19 \ arch-arm \ usr \包括。我已经验证了jni.h存在于此目录中。

我已经检查了此论坛上的所有其他消息,但找不到任何具体步骤。感谢您的指导。问候。

4 个答案:

答案 0 :(得分:25)

在更新到Eclipse Kepler之后,我遇到了与基于Android NDK的代码的工作项目类似的问题。我观察到类似的事情:头文件将在项目中的“includes”下正确列出,实际构建(通过ndk-build)工作正常,但Eclipse的编辑器无法在标准系统目录中找到任何头文件(所有头文件都带有&lt ;>括号)。

我尝试了许多不同的修复方法,包括切换工具集,重建索引等,但没有成功。

最后,我完全从项目中删除了C性质,并通过Eclipse中的“Android Tools”菜单将其添加回来。

删除C性质:

我能找到从项目中可靠地删除C性质的唯一方法是手工编辑项目的Eclipse .project文件。

  1. 关闭Eclipse项目(例如退出Eclipse)。

  2. 在文本或xml编辑器中打开.project文件。将至少需要删除2个<buildCommand>个节点。删除名称为<buildCommand>的{​​{1}}节点及其所有子节点,以及名称为org.eclipse.cdt.managedbuilder.core.genmakebuilder的{​​{1}}节点及其子节点。最后,删除以下行:

    <buildCommand> org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder <nature>org.eclipse.cdt.core.cnature</nature> <nature>org.eclipse.cdt.core.ccnature</nature>

  3. 完全删除<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>文件。

  4. 添加Android原生性质

    在Eclipse中重新打开项目。然后在Project Explorer中右键单击项目,从“Android Tools”上下文菜单中选择“Add Native Support ...”。

    Android Tools -> Add Native Support...

    查看此更改之前和之后在.project和.cproject文件中所做的更改,似乎它主要为Android NDK工具提供了新的版本号。无论如何,它为我解决了这个问题。

答案 1 :(得分:3)

添加原生支持后,右键单击项目,在c / c ++中添加include - &gt;路径和符号&gt;&gt;包括,例如添加包含为%NDK_HOME%\ platforms \ android-19 \ arch-arm \ usr \ include

答案 2 :(得分:1)

前几天我遇到了同样的问题。我在stackoverflow中找到了另一个问题的修复,但现在我找不到链接了。

在Eclipse中:右键单击您的项目&gt;属性&gt; C / C ++一般&gt;代码分析&gt;启动并禁用这两个选项(“使用构建运行”和“键入时运行”)。

CDT和Indexer似乎存在问题,这样做可以隐藏问题。编辑器仍会抱怨,但现在您应该能够运行和调试您的应用程序了。

答案 3 :(得分:1)

我为adt-bundle-windows-x86_64-20140321:

解决了这个问题
  1. 没有设置任何环境变量,只是在Preferences&gt;下指向NDK位置Android&gt; NDK
  2. 我创建了新的,干净的Eclipse工作区。
  3. 使用C ++代码从我的项目中删除下一个文件/文件夹:
  4.   

    .settings
    .classpath
    .cproject
    .project
    project.properties

    1. Eclipse&gt;新&gt;其他&gt; Android&gt;现有代码中的Android项目&gt;然后使用您的项目指向文件夹,让Eclipse检测它,选中“将项目复制到工作区”,然后单击“确定/下一步”,无论如何。
    2. 清理项目。
    3. 右键点击项目&gt; Android工具&gt;添加原生支持
    4. 重建,可能重启工作区。
    5. 此问题也解决了Eclipse 4.3之前忽略的构建系统和用户定义的编译器标志。现在,依赖于这个标志等的宏折叠工作正常。

      如果更通用 - NDK插件可以正确地为您定义包含和其他任何正常工作所需的内容,但您需要从破碎的废话中清除您的项目。