Android2.2:'pthread_rwlock_t' does not name a type: android 2.3版本以下不支持读写锁的解决办法

本文介绍了在Android API等级低于9时,遇到`pthread_rwlock_t`不被支持的问题,以及尝试通过替换libc.so和自定义读写锁实现的方法。最终建议使用信号量作为替代方案来实现简单的互斥,尽管效率可能较低。
摘要由CSDN通过智能技术生成

好了,我前面的一篇blog已经讲过了这个问题。

http://blog.csdn.net/whitetao/article/details/7242712

在Android API < 9时,采用android NDK编译代码是不支持pthread_rwlock_t结构体的。

当时给的解决办法是改写application.mk文件,把版本改成9,APP_PLATFORM := android-9     //对应2.3.1
但是如果我们就需要android 2.2及一下版本支持这个结构体怎么办?

下面将给出解决办法

 

大家第一点肯定会想,既然不支持,那么我们能否使用android 2.3.1的跟该结构体相关的东东替换掉android2.2版本的呢?

然后我就去查了相关的东东,发现该结构体定义在pthread.h中,代码实现打包在libc.so中,然后进行替换

我试过了,确实是个好办法,编译通过了,但是,我们编译出来的库java层通过jni调用不了了,百思不得其解。

我想了一下,因为libc.so是一些基础库,可能native的一些规则里面也有,两个版本的规则不一致了,所以找不到了。

反正不管它吧,这个方法以失败告终。

 

好了,再打开android 2.3.1的pthread.h头文件看一下,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值