在应用中实现社交帐号在启动后自动登录功能后,频繁闪退

【应用启动后闪退】
2015-01-08 
耗时3小时
【描述】
这个问题是实现了自动恢复社交帐号状态后出现的。
初步测试,如果登录后再退出游戏,重启后有概率的出现闪退。如果没有退出前没有登录,则没有问题。
启动前如果清理了登录状态记录信息,也没问题。
获取到的栈信息如下:
01-08 14:43:12.541: I/DEBUG(5980): backtrace:
01-08 14:43:12.542: I/DEBUG(5980):     #00  pc 0029c582  /mnt/asec/com.konamobile.dessertdash-1/lib/libbubblebear.so (cocos2d::ZipFile::fileExists(std::string const&) const+1)
01-08 14:43:12.542: I/DEBUG(5980):     #01  pc 0028d29d  /mnt/asec/com.konamobile.dessertdash-1/lib/libbubblebear.so (cocos2d::CCFileUtilsAndroid::isFileExist(std::string const&)+60)
01-08 14:43:12.542: I/DEBUG(5980):     #02  pc 0028a027  /mnt/asec/com.konamobile.dessertdash-1/lib/libbubblebear.so (cocos2d::CCFileUtils::getFullPathForDirectoryAndFilename(std::string const&, std::string const&)+22)
01-08 14:43:12.542: I/DEBUG(5980):     #03  pc 0028981f  /mnt/asec/com.konamobile.dessertdash-1/lib/libbubblebear.so (cocos2d::CCFileUtils::getPathForFilename(std::string const&, std::string const&, std::string const&)+186)
01-08 14:43:12.542: I/DEBUG(5980):     #04  pc 0028aec5  /mnt/asec/com.konamobile.dessertdash-1/lib/libbubblebear.so (cocos2d::CCFileUtils::fullPathForFilename(char const*)+224)
01-08 14:43:12.542: I/DEBUG(5980):     #05  pc 002a1b2d  /mnt/asec/com.konamobile.dessertdash-1/lib/libbubblebear.so (cocos2d::CCTextureCache::addUIImage(cocos2d::CCImage*, char const*)+48)
01-08 14:43:12.542: I/DEBUG(5980):     #06  pc 0026ca13  /mnt/asec/com.konamobile.dessertdash-1/lib/libbubblebear.so (cocos2d::CCDirector::createStatsLabel()+174)
01-08 14:43:12.542: I/DEBUG(5980):     #07  pc 0026cc63  /mnt/asec/com.konamobile.dessertdash-1/lib/libbubblebear.so (cocos2d::CCDirector::setOpenGLView(cocos2d::CCEGLView*)+62)
01-08 14:43:12.542: I/DEBUG(5980):     #08  pc 001ea61b  /mnt/asec/com.konamobile.dessertdash-1/lib/libbubblebear.so (AppDelegate::applicationDidFinishLaunching()+26)
01-08 14:43:12.542: I/DEBUG(5980):     #09  pc 0028d07b  /mnt/asec/com.konamobile.dessertdash-1/lib/libbubblebear.so (cocos2d::CCApplication::run()+6)
01-08 14:43:12.542: I/DEBUG(5980):     #10  pc 001e7025  /mnt/asec/com.konamobile.dessertdash-1/lib/libbubblebear.so (Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeInit+108)
走读代码、网上查询也找不到头绪。
通过排除法,基本已经确认是由于自动登录导致的闪退
【猜测一】
自动登录时机太早,在onStart就执行了,可能导致冲突
应对:在C代码调用开始后,才执行自动登录功能
结果:闪退出现概率降低,不过出现新的栈信息
01-08 16:25:07.795: I/DEBUG(9332): backtrace:
01-08 16:25:07.795: I/DEBUG(9332):     #00  pc 001f513c  /mnt/asec/com.konamobile.dessertdash-2/lib/libbubblebear.so (SocialCtrlData::handleSocialRet(SocialAction, bool)+119)
01-08 16:25:07.795: I/DEBUG(9332):     #01  pc 001f5265  /mnt/asec/com.konamobile.dessertdash-2/lib/libbubblebear.so (Java_com_cldeer_bubblebear_GoogleInterface_loginResultCallback+16)
01-08 16:25:07.795: I/DEBUG(9332):     #02  pc 0001e950  /system/lib/libdvm.so (dvmPlatformInvoke+112)
01-08 16:25:07.795: I/DEBUG(9332):     #03  pc 0004e841  /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+500)
01-08 16:25:07.795: I/DEBUG(9332):     #04  pc 00050d69  /system/lib/libdvm.so (dvmResolveNativeMethod(unsigned int const*, JValue*, Method const*, Thread*)+200)
01-08 16:25:07.795: I/DEBUG(9332):     #05  pc 00027d28  /system/lib/libdvm.so
01-08 16:25:07.795: I/DEBUG(9332):     #06  pc 0002bfe0  /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+180)
01-08 16:25:07.795: I/DEBUG(9332):     #07  pc 00062293  /system/lib/libdvm.so (dvmInvokeMethod(Object*, Method const*, ArrayObject*, ArrayObject*, ClassObject*, bool)+370)
01-08 16:25:07.795: I/DEBUG(9332):     #08  pc 0006a205  /system/lib/libdvm.so
01-08 16:25:07.795: I/DEBUG(9332):     #09  pc 00027d28  /system/lib/libdvm.so
01-08 16:25:07.795: I/DEBUG(9332):     #10  pc 0002bfe0  /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+180)
01-08 16:25:07.795: I/DEBUG(9332):     #11  pc 00061f6f  /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+282)
01-08 16:25:07.795: I/DEBUG(9332):     #12  pc 0004aac9  /system/lib/libdvm.so
01-08 16:25:07.795: I/DEBUG(9332):     #13  pc 0004b8e9  /system/lib/libandroid_runtime.so
01-08 16:25:07.795: I/DEBUG(9332):     #14  pc 0004c7f5  /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*)+668)
01-08 16:25:07.795: I/DEBUG(9332):     #15  pc 00000db7  /system/bin/app_process
01-08 16:25:07.795: I/DEBUG(9332):     #16  pc 0001c3d4  /system/lib/libc.so (__libc_init+64)
01-08 16:25:07.795: I/DEBUG(9332):     #17  pc 00000ae8  /system/bin/app_process
对函数SocialCtrlData::handleSocialRet(SocialAction, bool)进行定位排查,没发现用法问题
【猜测二】
还是登录时机比较早,可能跟部分行为冲突了。
应对:在开始进入首页面后,再尝试自动登录
结果:测试20次左右,闪退问题没有再出现过了
【总结】
问题根因没有定位到,暂时规避了,虽然还存在一定风险,不过从测试数据看,风险已经降到可以忽略的程度了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值