游戏闪退,求大神

这是错误报告


Build fingerprint: ‘Xiaomi/libra/libra:5.1.1/LMY47V/6.4.7:user/release-keys’
Revision: ‘0’
ABI: ‘arm’
pid: 20179, tid: 20209, name: GLThread 507 >>> com.richard.zhaobutong <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
r0 e324f988 r1 f74d10f8 r2 00000001 r3 00000000
r4 e3f0db5c r5 e38ac50c r6 ab9fbe38 r7 43f00000
r8 00fdd16b r9 ab478388 sl 00000000 fp e324f9bc
ip e3d866f9 sp e324f980 lr e37815e8 pc e37815f0 cpsr 800f0010

backtrace:
#00 pc 004335f0 /data/app/com.richard.zhaobutong-1/lib/arm/libcocos2dcpp.so (CFindKey::success(float)+456)
#01 pc 0066ec6c /data/app/com.richard.zhaobutong-1/lib/arm/libcocos2dcpp.so (cocos2d::TimerTargetSelector::trigger(float)+180)
#02 pc 0066e86c /data/app/com.richard.zhaobutong-1/lib/arm/libcocos2dcpp.so (cocos2d::timer::update(float)+212)
#03 pc 0067a8cc /data/app/com.richard.zhaobutong-1/lib/arm/libcocos2dcpp.so (cocos2d::Scheduler::update(float)+676)
#04 pc 00639e20 /data/app/com.richard.zhaobutong-1/lib/arm/libcocos2dcpp.so (cocos2d::Director::drawScene()+160)
#05 pc 0063e4b4 /data/app/com.richard.zhaobutong-1/lib/arm/libcocos2dcpp.so (cocos2d::DisplayLinkDirector::mainLoop()+136)
#06 pc 0048b5b0 /data/app/com.richard.zhaobutong-1/lib/arm/libcocos2dcpp.so (Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeRender+40)
#07 pc 00021ea5 /data/dalvik-cache/arm/data@app@com.richard.zhaobutong-1@base.apk@classes.dex

找你CFindKey::success( 这个方法里面做了什么操作吧,因为Scheduler::update(每帧调用,你方法里面是不是有些数据或者纹理释放了

我是在场景结束的时候就是析构的时候用了Director::getInstance()->getTextureCache()->removeUnusedTextures();这个的,在success里面没有释放掉什么。而且在电脑是可以运行的

那应该就是这个问题,你百度一下removeUnusedTextures这个在切换场景的时候,要如何使用吧,我认为是你在CFindKey::success 里面调用了,createspritefromframe之类的代码,你可以贴上来让大家看看,你这样子报错信息没人看的到内容的

这是success里面的代码

我猜测你ParticleSystemQuad 中 WinStar.plist所使用 纹理应该被删了,要么就是CAnimatieCre中的纹理没了,只有对应的plist在内存中,你打印一下内存中的texture看看吧,

texture要怎么打印 :12:

void TextureCache::removeUnusedTextures()
{
for( auto it=_textures.cbegin(); it!=_textures.cend(); /* nothing */) {
Texture2D *tex = it->second;
if( tex->getReferenceCount() == 1 ) {
CCLOG(“cocos2d: TextureCache: removing unused texture: %s”, it->first.c_str());

        tex->release();
        _textures.erase(it++);
    } else {
        ++it;
    }

}

}


TextureCache 里面有打印的代码啊,参考一下

不是纹理的问题啊,我把所有删除纹理语句删掉了,在手机运行还是会闪退

我是一个场景里面有2个层,2个层都开了scheduleupdate,这样会有影响吗

没有影响,

话说你运行这个this->scheduleOnce(cFindKey::toLayerScene)的时候,调用success的schedule停掉了么,我怎么觉得你这个this->scheduleOnce(cFindKey::toLayerScene)方法每次都执行呢

我这个success也只调用了一次,这样也会出错吗

这个没问题,好吧,不懂你这个报错了,我推荐你pc平台断点吧

好吧,谢谢了

请问还有人懂这个问题吗?在线等,急!!!可以看代码!!!

最笨方法,android下你用eclipse打开,然后自己cclog出来看看哪一行报错呗,

闪退已经解决了

什么问题呀,请教一下