Eclipse ADT“...无法解析”Android NDK 和 C 文件

2024-04-06

我的 NDK 项目的 Eclipse 索引器出现问题。那里有很多类似的线程,但似乎没有一个涉及相同的问题根源。我有一个 OpenGL ES 应用程序,我需要将其移植到纯粹用 C 编写的 Android,我想将其作为 NativeActivity 运行,最好没有附加 Java。该代码可以很好地使用ndk-build经过大量重写,但从 IDE 中出现很多错误,例如Type 'GLfloat' could not be resolved。 APK 已生成,我可以安装它adb等等,但我希望能够使用 IDE,尤其是调试时。

如果我在上下文菜单中选择“打开声明”,例如#include <GLES2/gl2.h>然后 Eclipse 能够显示该文件,我看到GLfloat定义在那里,但我将鼠标悬停在该文件中的任何内容上时没有得到任何信息,所以我猜索引器只是以某种方式跳过它?不在 Android NDK 目录中的头文件可以很好地建立索引,例如jni文件夹和子文件夹如jni/png。我有NDKROOT根定义在C/C++ Build -> Environment,一个具有本机功能并使用 CDT 视图的项目。

我注意到的一件事是,当我最初建立该项目时,我有一个.cpp索引器在提供 Android NDK 信息时没有问题的文件,但一旦我将其更改为.c错误开始出现。我的印象是 Android NDK 是为与 C 一起使用而设计的,仅支持基本的 C++,但环顾示例,我只看到了一堆.cpp文件让我很困惑。我尝试过设置LOCAL_CPP_EXTENSION += .c in my Android.mk但这导致 Eclipse 在构建过程中挂起。我没有尝试过的最后一件事是重命名所有文件,以便使用 C++ 编译器来编译它们,但我不明白为什么这是必要的,而且我有一些第三方库,例如我希望包含在源代码中的 zlib而不是不去摆弄。

Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

define all-cpp-files-under
$(patsubst ./%, %, \
    $(shell cd $(LOCAL_PATH) ; \
        find $(1) -name "*.c" -and -not -name ".*") \
)
endef

LOCAL_MODULE    := MyProject
LOCAL_SRC_FILES := $(call all-cpp-files-under, .)
LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv2 -lOpenSLES
LOCAL_STATIC_LIBRARIES := android_native_app_glue
LOCAL_C_INCLUDES += $(LOCAL_PATH)/jansson
LOCAL_C_INCLUDES += $(LOCAL_PATH)/zlib
LOCAL_C_INCLUDES += $(LOCAL_PATH)/png

include $(BUILD_SHARED_LIBRARY)

$(call import-module,android/native_app_glue)

应用程序.mk

APP_PLATFORM := android-9
APP_ABI := all

这可能不是解决问题的正确方法,但您可以找到该文件${WORKSPACE_LOC}/.metadata/.plugins/com.android.ide.eclipse.ndk/${ProjName}.pathinfo。它是一个文本文件,格式简单。首先,尝试删除该文件,然后重建项目。如果这没有帮助,您可以添加

i,d:/android/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/lib/gcc/arm-linux-androideabi/4.6/include
i,d:/android/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/lib/gcc/arm-linux-androideabi/4.6/include-fixed
i,D:/Android/android-ndk-r9/platforms/android-14/arch-arm/usr/include

手动(上面的示例适用于 Windows)。

Update更好的解决方法是设置 ADT 来使用indexer正确,参见Android NDK 构建,方法无法解析 https://stackoverflow.com/questions/23155676/android-ndk-build-method-could-not-be-resolved or Eclipse 编译成功但仍然给出语义错误 https://stackoverflow.com/questions/16786555/eclipse-compiles-successfully-but-still-gives-semantic-errors.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Eclipse ADT“...无法解析”Android NDK 和 C 文件 的相关文章

随机推荐

  • QTcpClient 成功连接,但未连接到我的服务器。它在哪里连接?

    我已经使用 Qt 的 Tcp Sockets API 成功构建了一个瘦客户端 服务器 我知道它效果很好 因为我已经通过网络发送了大量数据并进行了验证 然而 我的项目经理想要一套单元测试 我正在使用 Qt 的测试库来实现它们 无论如何 我试图
  • 优化以查找复数作为输入

    我想知道是否有 C C 库或 Matlab 代码技术来使用最小化求解器确定实数和复数 这是一个代码片段 显示了我想要做的事情 例如 假设我知道Utilde 但不是x and U变量 我想使用优化 fminsearch 来确定x and U
  • 表格单元格自动换行不适用于斜杠

    我试图将文本包装在固定布局中 但当文本包含斜杠时它不起作用 可以在不插入 Javascript 纯 CSS 空格的情况下解决这个问题吗 jsfiddle http jsfiddle net HgBhk 1 http jsfiddle net
  • 为什么 pyspark 失败并显示“实例化‘org.apache.spark.sql.hive.HiveSessionStateBuilder’时出错”?

    我一生都无法弄清楚我的 PySpark 安装出了什么问题 我已经安装了所有依赖项 包括 Hadoop 但 PySpark 找不到它 我的诊断是否正确 请参阅下面的完整错误消息 但它最终在 PySpark SQL 上失败 pyspark sq
  • 在主线程中的线程中引发未处理的异常? [复制]

    这个问题在这里已经有答案了 有一些类似的问题 但没有一个提供我需要的答案 如果我通过创建线程threading Thread 然后抛出未处理的异常 这些线程将被终止 我希望保留异常详细信息与堆栈跟踪的默认打印 但也关闭整个过程 我认为可能可
  • 为什么 constexpr 静态成员(类型为类)需要定义?

    gt 查看完整的代码片段和编译coliru http coliru stacked crooked com a e6ebe0ef8a87b601 我有一个文字类型 http en cppreference com w cpp concept
  • 获取本周的所有日期

    假设我将周日至周六视为一周 如何在 C 中获取本周的所有日期 例如 当前日期是30th March 2017 我需要的输出是 26 March 2017 27 March 2017 28 March 2017 29 March 2017 3
  • 如何检查字符常量是否符合 ASCII?

    对早期版本的评论这个答案 https stackoverflow com questions 42055919 how do i take in a1 style rowcolumn specifications as input 4205
  • 禁用 HighCharts 上的悬停

    我使用 HighCharts 库构建了一个饼图 这是我的图表 http jsfiddle net t2MxW 20890 var chart new Highcharts Chart colors 0072BC BFDAFF DDDF00
  • 这个 XSLT 效率低吗?

    我得到了答复我关于翻译 XML 文件的最后一个问题 https stackoverflow com questions 8274068 它激励我去玩它 我想出了一个不同的解决方案 但我感觉最后两个选择不是最佳的 可以用更好或更有效的方式来完
  • Bigcommerce 购物车页面和结帐页面忽略主题字体样式

    我有一个大型商业网站 这是网站链接https www taoaccents com https www taoaccents com我正在为网站使用简单的主题 我已经上传自定义字体并将其调用到 styles css 中 并使用正确的路径 下
  • 外部CSS文件加载但未应用[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 湿件错误
  • 我可以判断 Amazon SQS 消息是否仍在传输中吗?

    给定一条 Amazon SQS 消息 有没有办法通过 API 判断它是否仍在运行中 或者 我是否需要记下收到消息时的时间戳 从当前时间中减去该时间戳 然后检查该时间戳是否小于可见性超时 使用 Amazon Simple Queuing Se
  • 免费/便宜的 PowerDesigner 替代品? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何获取ProgramFiles路径?

    我有奇怪的问题 我使用的是 Windows 7 Enterprise SP1 64 位 我需要为我的项目获取程序文件和程序文件 X86 目录路径 这就是我所做的 Environment GetFolderPath Environment S
  • C++ 将数字转换为单词

    我在一本书中发现了这个将数字转换为单词的程序 初始程序转换数字 1 1000 但随后要求您修改程序以接受最多 1 000 000 的数字 我可以处理 20 999 以内的数字 但无法处理超过 20 999 的数字 我一整天都在修改它 并在网
  • 当 API 7 上有溢出操作时,菜单按钮会使应用程序崩溃

    我正在尝试为 API 7 及更高版本实现操作栏 我正在使用 Android Studio 创建一个新的简单项目 配置如下 最低 SDK API 7 目标SDK API 14 编译 谷歌 API 14 主题 带深色操作栏的全息灯 设置创建活动
  • 为什么我们需要在 Swing 应用程序中扩展 JFrame?

    为什么我们需要延长JFrame构建 Swing 应用程序时的类 据我所知extends用于继承基类 没有任何功能JFrame类在以下程序中使用 但仍然被扩展 我知道我错过了一些信息 JFrame 类的某些功能是否在后台运行 1 Code i
  • 函数编程和模拟对象

    我最近正在观看 Clojure 上的网络广播 在其中 演讲者在讨论 Clojure 的 FP 性质时发表了评论 内容类似于 我希望我没有误会他 模拟对象在嘲笑你 不久前 当我观看微软反应式框架开始出现的网络广播时 我也听到了类似的评论 它类
  • Eclipse ADT“...无法解析”Android NDK 和 C 文件

    我的 NDK 项目的 Eclipse 索引器出现问题 那里有很多类似的线程 但似乎没有一个涉及相同的问题根源 我有一个 OpenGL ES 应用程序 我需要将其移植到纯粹用 C 编写的 Android 我想将其作为 NativeActivi