zoukankan      html  css  js  c++  java
  • 按Home键切换到后台后会触发libGPUSupportMercury.dylib: gpus_ReturnNotPermittedKillClient导致crash

    转自:http://www.eoeandroid.com/thread-251598-1-1.html

    好像有很多朋友都碰到过这个问题,即在真机调试时,按hone键返回桌面,再回到app时,app会crash或僵死。同时xcode停留在:
    libGPUSupportMercury.dylib`gpus_ReturnNotPermittedKillClient:
    0x372fa094: trap
    0x372fa096: nop

    原因在于AppDelegate.cpp里

    void AppDelegate::applicationDidEnterBackground()
    {
        CCDirector::sharedDirector()->pause();
    }
    
    void AppDelegate::applicationWillEnterForeground()
    {
        CCDirector::sharedDirector()->resume();
    }

    director在app切换至后台时若被pause,它其实并没有真正暂停,而是仍保持着每秒4帧的绘制速率。但在app处于后台时,ios是不允许app调opengl的。这个原因引发了上述问题。

    解决方法是:

    void AppDelegate::applicationDidEnterBackground()
    {
        CCDirector::sharedDirector()->stopAnimation(); 
    }
    
    void AppDelegate::applicationWillEnterForeground()
    {
        CCDirector::sharedDirector()->startAnimation();
    }

    stopAnimation()才让director真正暂停下来。

    另:播放视频时按home键crash问题:
    http://blog.k-res.net/archives/1193.html
  • 相关阅读:
    记坑
    常用模板
    ACM-东北赛划水记
    jzoj 4178游戏
    JZOI 4163
    jzoj 4146踩气球
    jzoj 5589. 缩点
    jzoj 5588 %%%
    jzoj 5571 ffs
    BJOI 2017 Kakuro
  • 原文地址:https://www.cnblogs.com/Clin/p/3405173.html
Copyright © 2011-2022 走看看