【发布时间】:2011-12-09 13:58:24
【问题描述】:
我正在使用 Android NDK,但 JNI 文件夹中的 .c 文件显示未解决的包含错误,如图所示:请帮助我解决此问题。我已经尝试了几乎所有可以在互联网上找到但无法解决的问题。对于 C/C++ 项目,我可以使用构建路径\路径和符号选项来解决包含问题,但对于 android 项目,此选项在项目属性中不可用。
【问题讨论】:
标签: android eclipse android-ndk eclipse-cdt
我正在使用 Android NDK,但 JNI 文件夹中的 .c 文件显示未解决的包含错误,如图所示:请帮助我解决此问题。我已经尝试了几乎所有可以在互联网上找到但无法解决的问题。对于 C/C++ 项目,我可以使用构建路径\路径和符号选项来解决包含问题,但对于 android 项目,此选项在项目属性中不可用。
【问题讨论】:
标签: android eclipse android-ndk eclipse-cdt
我能在我的项目中找到的唯一解决方法是禁用Eclipse Preferences -> General -> Editors -> Text Editors -> Annotations -> C/C++ Indexer Markers. 中的#include 警告
由于 C/C++ 项目首选项未显示在 Android 项目中,因此我无法输入 NDK 代码的包含目录。
【讨论】:
Android NDK 项目 -> 新建 -> 文件夹 -> 高级 -> 链接到备用位置(链接文件夹) 浏览器路径(例如):C:\cygwin\lib\gcc\i686-pc-cygwin\3.4.4\include。路径取决于您使用的 cygwin 版本。
【讨论】:
遇到了同样的问题,通过修复项目属性中的路径(C/C++ General / Paths and Symbols / Includes)解决了这个问题:
${NDKROOT}/sources/cxx-stl/gnu-libstdc++/include
到:
${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.6/include
【讨论】:
这是 Windows 上的 ADT 插件中的一个错误(或者更确切地说,这听起来像是与新版本的 CDT for Eclipse 不兼容)记录在这里:http://code.google.com/p/android/issues/detail?id=33788
有一个修复了此处描述的问题的新版本的预览:http://tools.android.com/download/adt-21-preview#TOC-Installation
这是我需要解决的问题:
可能通过编辑适当的项目文件而不是重新创建来完成#3,但由于我处于开发的早期阶段,所以我没有尝试过。
【讨论】:
在当前的 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
【讨论】:
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
3 在eclipse中打开项目,刷新。右键单击,属性-> Android 工具-> 添加本机支持。解决了,现在可以ctrl+点击打开链接了。
4 如果方法和符号仍然显示未解析,您可以尝试以下操作:转到项目的属性 -> C/C++ 常规 -> 代码分析。单击“使用项目设置”单选按钮(或“配置工作区设置...”按钮)。禁用(取消选中)“无法解析方法”复选框。
【讨论】: