【问题标题】:false error from Eclipse: Function '__android_log_print' could not be resolved (Android, CDT)来自 Eclipse 的错误错误:无法解析函数“__android_log_print”(Android、CDT)
【发布时间】:2012-03-04 17:35:08
【问题描述】:

我有一个 Android NDK 项目,其 NDK 部分可以从命令行编译; 我曾经在将 Eclipse 下的编译内容作为纯 Java 项目运行时没有任何问题。但是我将它转换为 C/C++ 项目,现在甚至无法运行它。

我在“控制台”中看到该库已构建, 但是:Eclipse 告诉我我的项目有错误,它不会运行它。 (为什么在地球上?代码编译!!!)

我通过向项目属性添加包含路径解决了一些缺少符号的问题。

但我还是觉得很奇怪 Function '__android_log_print' could not be resolved 错误。

那么,两个问题:

  1. 如何消除此错误?(可以忽略吗?)
  2. B 计划:如何将这个混合的 C/C++/Java 项目转换为纯 Java 项目?

= = =

PS“你叫这艘船,它就行”。难道他们不能为 IDE 找到一个更好的名称,比如“清醒编码”吗? (修辞问题)

= = =

更新:看起来 Eclipse 只报告它看到的文件(即显示给你)的错误。我用 LOGD 宏打开了另一个文件,Eclipse 也报告了一个错误。我已经关闭了所有文件窗口,关闭了 Eclipse 删除了一个 .something 文件。之后,我能够运行该应用程序。我没有冒险使用该日志记录宏打开源文件。 (这与“清醒编码”相差甚远,不是吗?)

【问题讨论】:

标签: android eclipse android-ndk eclipse-cdt


【解决方案1】:

CDT indexer的配置需要开启“Index used headers ...”

如何到达:Project->Properties->C/C++ General->Indexer.

帮我摆脱错误。

【讨论】:

    【解决方案2】:

    如何忽略它:打开“问题”窗口,选择 c/c++ 文件中的错误并按 Del 键。将显示一个确认消息框,但之后您可以调试您的应用程序...直到下一次重建 =) 或者,正如您之前提到的,您可以关闭所有打开的 c/c++ 文件。

    【讨论】:

    • 我... errr... 已关闭它。当时没有用,但现在我不知道如何再次打开“问题”窗口。
    【解决方案3】:

    请在您的 Android.mk 文件中添加

    LOCAL_LDLIBS := -llog -landroid
    

    __android_log_print 不是 libc 的一部分,它在日志库中,因此您需要显式声明它以进行链接。

    请注意,如果 C 或 java 端出现错误,eclipse 将拒绝运行项目。在这种情况下,存在链接器错误;代码没有成功编译完成,所以不会运行。

    【讨论】:

    • 确实Android.mk中有-llog,否则命令行会出现链接错误。以防万一我将 liblog.so 添加到“库”选项卡的列表中,并将 ..arch-arm/usr/lib 添加到“库路径”选项卡中。我仍然遇到同样的错误。 Eclipse 不想运行编译成功的项目。
    • 我再说一遍:没有没有链接错误。在将项目转换为混合 C/Java 项目之前,我能够运行该项目。
    【解决方案4】:

    或者,您可以重新键入这些字符串并重新启动 Eclipse;虽然所有这些修复听起来都很糟糕......

    【讨论】:

      猜你喜欢
      • 2013-12-01
      • 2012-06-01
      • 2011-08-16
      • 2011-01-18
      • 1970-01-01
      • 2017-12-10
      • 1970-01-01
      • 2014-08-09
      • 1970-01-01
      相关资源
      最近更新 更多