在我的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存在于此目录中。
我已经检查了此论坛上的所有其他消息,但找不到任何具体步骤。感谢您的指导。问候。
答案 0 :(得分:25)
在更新到Eclipse Kepler之后,我遇到了与基于Android NDK的代码的工作项目类似的问题。我观察到类似的事情:头文件将在项目中的“includes”下正确列出,实际构建(通过ndk-build)工作正常,但Eclipse的编辑器无法在标准系统目录中找到任何头文件(所有头文件都带有&lt ;>括号)。
我尝试了许多不同的修复方法,包括切换工具集,重建索引等,但没有成功。
最后,我完全从项目中删除了C性质,并通过Eclipse中的“Android Tools”菜单将其添加回来。
删除C性质:
我能找到从项目中可靠地删除C性质的唯一方法是手工编辑项目的Eclipse .project
文件。
关闭Eclipse项目(例如退出Eclipse)。
在文本或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>
完全删除<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
文件。
添加Android原生性质
在Eclipse中重新打开项目。然后在Project Explorer中右键单击项目,从“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:
解决了这个问题.settings
.classpath
.cproject
.project
project.properties
此问题也解决了Eclipse 4.3之前忽略的构建系统和用户定义的编译器标志。现在,依赖于这个标志等的宏折叠工作正常。
如果更通用 - NDK插件可以正确地为您定义包含和其他任何正常工作所需的内容,但您需要从破碎的废话中清除您的项目。