背景及现象描述
- 公司自己开发的app,已上线使用;
- 该异常只有部分oppo手机用户反馈,在华为,三星等其它品牌,相同版本号的系统上都没问题;
- app中开启了捕获异常的日志功能,但并没有捕获到该异常;
- 在这部分反馈问题的oppo手机上,也是有时出现有时正常;
- 发生该异常时,点击取消无反应,点击立即清除对话框消失,然后立刻又弹出来(后来发现是每一两秒就会弹出一个该对话框);
-
用公司测试机及oppo真机云测过程中,都没有复现该异常;
Image1.png
原因分析
面对这些现象,发现以往的修复bug的经验都不起作用。于是,默默的打开了百度,百度结果一看,一堆在oppo手机上遇到过这个问题的开发者提问,还有微信,支付宝,甚至oppo系统自带的软件频繁报这个异常错误。而提出的解决方案,大同小异,要么是官网回答,请提供更为完整的信息,然后无下文,要么是让用户进应用设置,清除缓存,删除数据,甚至还有格式化手机,恢复出厂设置的。结果一试,还真的有点效果,用户能正常使用了,但是用不了多久,又出现了。面对这样的情况下,于是乎,把这口黑锅甩给了oppo系统,给市场方的答案是,系统bug,微信,支付宝,都遇到过,不是app的关系,遇到这种情况,只有清除数据,还是不行的话,那就恢复出厂设置。并且,本着做好事不留名的人道主义精神,笔者将这个oppo的“bug”,通过官方开发者公众号,反馈给了人工客服。顺便吐槽一句,体验感真不咋地,排队三小时,一直提示笔者前面多少人排队,最后终于到了,结果还是一个客服同时跟好多个客户沟通,每说一句话,都要等半天才回应。最后,好不容易沟通完,说的是测了一下,没有复现,会继续跟进测试,让笔者等邮件通知,结果到今天为止,也再无音讯。
但是,反映该异常的手机用户从一台,到两台,到三台,每天市场人员都在问,于是开始换了思路想,就算是网上说的那样oppo系统的关系,那也有原因引起触发这个问题,毕竟同手机上其它那么多应用,都能正常运行。
发现及分析问题
思路:收集问题用户的信息,尽可能创造相同的测试环境,以复现该异常。于是,让市场人员数收集了问题用户的应用设置界面截图,以及“关于手机”的截图。再在oppo开放平台提供的真机远程云测功能(这功能还是比较香的),选择相同机型进行真机测试。但是经过反复测试,还是没能复现该异常。最后,注意到了用户的一个细节设置。
对,就是这个允许自动启动设置项,而系统异常提示又是提示的“***多次启动失败”,似乎,从名字里面能感受到一丝丝的关联。于是,真机测试时,打开该设置项开关。从新启动app,皇天不负有心人,果然报该异常。按照该操作,反复测试了多台oppo手机及其它机型,最后发现其它系统手机无该异常,而oppo Android 10 会有该异常提示。
既然找到复现方法,那就比较好办了。接下来,利用oppo远程真机测试提供的日志功能,重现该异常前,获取日志,反复弹出该异常之后,导出日志报告文档。打开本地日志文档,寻找答案,直接以自己app包名为关键字进行搜索。最后发现日志中,反复抛出如图异常
至此,基本已经很明朗了,归根结底,还是自己app中代码引起的异常,或许只是oppo系统,将异常抛出提示出来了而已。当然,最后发现是自己开启的服务没有做针对Android 8.0之后版本的适配,才导致了该异常的发生。至于如何修复该异常,这里就不在多阐述了,网上一大堆。
总结
本文主要介绍笔者解决oppo系统提示的自己开发的app多次启动失败,尝试清除历史记录来恢复这个异常提示。网上百度出来的方案一大堆,大部分都是粘贴复制,笔者不知道是不是真能解决,但至少这些解决方案,不适合自己的情况。最后还是通过数据分析,修复了该异常。
而对于oppo的该异常提示,笔者认为有几种可能:
- 如果是自己开发的app,基本可以确定是自己代码发生了异常;
- 如果是第三方app,则该app版本出现了问题,更新安装最新版本app;
- 有些网友提出恢复出厂设置后使用软件出现了该异常,这只是因为恢复出厂设置导致手机上的app回退到了以前的旧版本,而该应用的旧版本已经不能正常使用,所以会出现该异常;
- 还有网友提出的解决方案是恢复出厂设置或者清除该app的数据或缓存。笔者认为,跟恢复出厂设置没有什么关系,恢复出厂设置只是会让用户重新安装该异常app,或者和清除缓存数据一样,仅仅是针对由于该app产生的异常数据引起的该异常提示情况,而针对其它情况,是不会有效的。
以上仅代表个人观点,如有异议,欢迎大神们批评指正。