未解决的符号" pthread_condattr_setclock"在除5.0以外的android

时间:2015-05-27 04:49:09

标签: android native

我正在使用" pthread_condattr_setclock "在我的一个本机共享库中。构建很好,但是当我在Android应用程序中使用 System.loadLibrary 加载本机库时,应用程序终止抛出异常

失败:dlopen失败:找不到符号" pthread_condattr_setclock"由abcd.so引用

当我在Android 5.0中运行我的应用程序时,我没有得到这个例外,但在其他Android版本中。

有人对此有任何想法吗?

1 个答案:

答案 0 :(得分:0)

Android在pthread_condattr功能方面确实使用了非标准功能。即使我的NDK目录的pthread.h文件中存在标准声明,如果我使用API​​级别21之前的版本,Android也会抱怨它们没有被定义。

在Android 5.0之前,可以使用其他非标准功能等待使用单调时钟,例如(pthread_cond_timedwait_monotonic_np),但它们已在Android 5.0中删除。我不知道为什么这些函数在声明时不起作用而且(AFAIK)没有得到正式支持,但看起来pthread_condattr系列的非标准方法需要使用Android版本5.0之前。

请参阅示例here