【问题标题】:Android NDK "dlopen failed: cannot locate symbol"Android NDK“dlopen 失败:找不到符号”
【发布时间】:2015-10-26 17:46:30
【问题描述】:

我正在尝试运行具有 C++ NDK 编译代码的应用程序,但出现以下异常:

java.lang.UnsatisfiedLinkError: dlopen failed: 无法定位“mylib.so”引用的符号“”

我不明白为什么我没有得到缺少的符号:symbol ""

在其他情况下,缺少的符号如下所示:here

我怎样才能找到丢失的符号或问题所在?

谢谢!!

【问题讨论】:

  • 您是否尝试将这段输出复制到文件并使用二进制查看器进行分析?也许它只是引号之间的一个不可打印的字符?
  • 谢谢!我会试试的。
  • 终于找到了问题所在。编译时我没有包括所有 .h 文件。现在我有一个“包含”文件夹,我在其中使用 .sh 脚本复制所有 .h 文件。
  • 您能再解释一下解决方案吗?我现在遇到了用clang编译的这个问题。是不是因为我自己的库缺少一些符号?
  • 是的。我通过将所有 .h 文件放在“包含”文件夹中来修复它。现在一切正常。

标签: android-ndk


【解决方案1】:

我遇到了这样的错误:

故障:dlopen 失败:找不到符号“lstat64”

在android 4.3版本出现,但在android6.0版本可以运行

这是我解决这个问题的方法:

NDK r10降到NDK r9d,然后在android4.3上跑起来!!!

【讨论】:

  • 干得好,伙计!再见
猜你喜欢
  • 2019-12-26
  • 1970-01-01
  • 2016-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多