【问题标题】:Unresolved inclusion error while using NDK使用 NDK 时未解决的包含错误
【发布时间】:2011-12-09 13:58:24
【问题描述】:


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

【问题讨论】:

    标签: android eclipse android-ndk eclipse-cdt


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        遇到了同样的问题,通过修复项目属性中的路径(C/C++ General / Paths and Symbols / Includes)解决了这个问题:

        ${NDKROOT}/sources/cxx-stl/gnu-libstdc++/include

        到:

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

        【讨论】:

        • 非常有用。谢谢。不要使用其他文件夹(4.7、4.8)。只有 4.6 有包含子文件夹。
        • 这个路径设置在哪里?我找不到它。
        • @TonyWickham 项目属性/C/C++ 常规/路径和符号/包含/GNU C、GNU C++
        【解决方案4】:

        这是 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

        这是我需要解决的问题:

        1. 在 SDK 管理器的选项中启用预览工具,然后安装 SDK 工具的预览版。
        2. 使用上面链接的预览描述中的链接在 Eclipse 中安装 ADT 和 NDK 插件的预览版。
        3. 重新创建我的项目,以便我可以重新执行“添加本机支持”步骤(显然是修复工作所必需的)。

        可能通过编辑适当的项目文件而不是重新创建来完成#3,但由于我处于开发的早期阶段,所以我没有尝试过。

        【讨论】:

          【解决方案5】:

          在当前的 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
          

          【讨论】:

            【解决方案6】:

            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++ 常规 -> 代码分析。单击“使用项目设置”单选按钮(或“配置工作区设置...”按钮)。禁用(取消选中)“无法解析方法”复选框。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-03-30
              • 2013-01-30
              • 1970-01-01
              • 2014-07-03
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-11-06
              相关资源
              最近更新 更多