首页
社区
课程
招聘
[已解决] [悬赏]求java程序员帮我看一下,安卓手机系统崩溃日志,为什么老是卡死 2.00雪花
发表于: 2017-9-26 10:56 3267

[已解决] [悬赏]求java程序员帮我看一下,安卓手机系统崩溃日志,为什么老是卡死 2.00雪花

2017-9-26 10:56
3267
手机经常卡死,刷机什么的也没用,帮我看一下最近的两次崩溃日志,什么原因导致的卡死?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 2968
活跃值: (319)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
base64解密,可以看到关键错误:

signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000018
  #00  pc 0x719c0  /system/lib/libstagefright.so (???)
  #01  pc 0xa020b  /system/lib/libstagefright.so (???)
  #02  pc 0x9ffe3  /system/lib/libstagefright.so (android::MediaCodec::~MediaCodec()+138)
  #03  pc 0xa027d  /system/lib/libstagefright.so (android::MediaCodec::~MediaCodec()+4)
  #04  pc 0xe7c7  /system/lib/libutils.so (android::RefBase::decStrong(void const*) const+50)
  #05  pc 0xa1577  /system/lib/libstagefright.so (android::MediaCodec::renderOutputBufferAndRelease(unsigned int)+66)
  #06  pc 0x1d5e1  /system/lib/libmedia_jni.so (???)
  #07  pc 0xbcae75  /system/framework/arm/boot.oat (???)

关键在libstagefright.so这个so出错,定位到android::MediaCodec::renderOutputBufferAndRelease(unsigned int)+66
该函数是用于设置视频渲染
status_t MediaCodec::renderOutputBufferAndRelease(size_t index, int64_t timestampNs) {
    sp<AMessage> msg = new AMessage(kWhatReleaseOutputBuffer, this);//发送消息
    msg->setSize("index", index);
    msg->setInt32("render", true);//设置是否渲染
    msg->setInt64("timestampNs", timestampNs);//timestampNs
    sp<AMessage> response;
    return PostAndAwaitResponse(msg, &response);
}
再找到函数
// static
status_tMediaCodec::PostAndAwaitResponse(const sp<AMessage>&msg, sp<AMessage>*response){
status_t err = msg->postAndAwaitResponse(response);
if(err != OK){
        return err;
 }
if(!(*response)->findInt32("err",&err)){
 err = OK;
}
return err;

定位到错误,但是由于没有更多信息以及没有真机继续调试,这边只能通过崩溃大概率猜测,可能是因为判断视频渲染问题,因为常常卡死嘛,也有可能是选择了软件渲染,导致CPU占用过多,是不是可以在手机里设置硬件加速之类的……

以上,大多都是猜测,也可能完全不对……具体实验和调试还是需要楼主自己看吧

2017-9-28 09:34
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢回答,牛
2017-10-28 08:34
0
雪    币: 1001
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
从调调用站看这里有执行析构,代码可能存在线程安全问题,最后crash地址是一个无效空地址,这里的0x18应该是个偏移地址,对应有效地址可能被free了,如果有coredump,可以分析下内存
2017-11-3 20:28
0
游客
登录 | 注册 方可回帖
返回
//