使用NDK时未解决的包含错误

时间:2011-10-17 20:07:59

标签: android eclipse android-ndk eclipse-cdt

enter image description here
我正在使用Android NDK,但JNI文件夹中的.c文件显示未解决的包含错误,如图所示:请帮助我解决此问题。我已经尝试了几乎所有我能在互联网上找到但无法解决的问题。对于C / C ++项目,我可以使用构建路径\ paths和symbols选项来解决包含问题,但对于android项目,此选项在项目属性中不可用。

6 个答案:

答案 0 :(得分:7)

这是ADT插件中的一个错误(或者更确切地说,它听起来与Eclipse的新版CDT不兼容)在此处记录的Windows上:http://code.google.com/p/android/issues/detail?id=33788

可以预览新版本,修复此处描述的问题:http://tools.android.com/download/adt-21-preview#TOC-Installation

以下是解决问题所需要做的事情:

  1. 在SDK Manager的选项中启用预览工具,然后安装SDK工具的预览版本。
  2. 使用上面链接的预览说明中的链接在Eclipse中安装ADT和NDK插件的预览版。
  3. 重新创建我的项目,以便我可以重新执行“添加本机支持”步骤(显然需要修复才能工作)。
  4. 可能通过编辑适当的项目文件而不是重新创建来完成#3,但由于我处于开发的早期阶段,所以我没有尝试过。

答案 1 :(得分:6)

有同样的问题,通过修复项目属性中的路径( C / C ++ General / Paths和Symbols / Includes )来解决它:

  

$ {NDKROOT} /来源/ CXX-STL / GNU-的libstdc ++ /包括

为:

  

$ {NDKROOT} /来源/ CXX-STL / GNU-的libstdc ++ / 4.6 /包括

答案 2 :(得分:4)

Android NDK项目 - >新 - >文件夹 - >高级 - >链接到备用位置(链接文件夹) 浏览器路径(例如):C:\ cygwin \ lib \ gcc \ i686-pc-cygwin \ 3.4.4 \ include。路径取决于您使用的cygwin的版本。

答案 3 :(得分:1)

在当前的Android NDK(修订版10e)中,文件夹gnu-libstdc++/4.6不存在 - 您必须更改Eclipse构建包含路径:

项目 - 属性 - C / C ++一般 - 路径和符号 - 包括 - GNU C,GNU C ++

${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.6/include
${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/include

更改为:

${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.8/include
${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include

答案 4 :(得分:0)

我能在项目中找到的唯一工作就是禁用Eclipse Preferences -> General -> Editors -> Text Editors -> Annotations -> C/C++ Indexer Markers.中的#include警告

由于C / C ++项目首选项未显示在Android项目中,因此我无法输入NDK代码的包含目录。

答案 5 :(得分:0)

1个关闭项目。在另一个编辑器中打开.project。删除以下内容:

......
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
<triggers>clean,full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
......
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
......
<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>

2删除.cproject

在eclipse中打开3个项目,刷新。右键单击,属性 - &gt; Android工具 - &gt;添加本机支持。解决了,现在我们可以按住ctrl +点击打开链接。

4如果方法和符号仍然显示未解决,您可以尝试:转到项目的属性 - &gt; C / C ++一般 - &gt;代码分析。点击&#34;使用项目设置&#34;单选按钮(或&#34;配置工作区设置...&#34;按钮)。禁用(取消选中)&#34;方法无法解析&#34;复选框。