Android5.0后出现的新错误:fatal error 11 fault addr

完整的错误信息:Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 1552 (Thread-173)

发火

Android4.4下运行好好的程序,放到5.0的手机上直接崩溃了。

好的查问题,发现是C++的底层文件报出的错误。JNI层面的错误信息不太具体,只有靠打印信息一步步查看问题,最后定位是pthread_mutex_init(H264datalock, NULL)互斥量初始化找不到地址,再看互斥量定义:pthread_mutex_t *H264datalock,难道是指针没有初始化造成的,但是此程序在Android4.4下跑了很久了,从没有出现过这个问题啊!抱着怀疑的态度,试一试,互斥量定义改为pthread_mutex_t H264datalock,不用指针,初始化则改为pthread_mutex_init(&H264datalock, NULL),好了,程序又顺利运行了。

思考结论:Android5.0的内核更新了Linux的SDK方法,在Android4.4下空指针可以丢给初始化函数让其完成初始化,而5.0后则不行了,不知道其他的库函数会不会也有这样的问题。

吐舌头

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值