美文网首页
华为手机提示“系统检测到xx应用多次异常退出,建议卸载”问题解决

华为手机提示“系统检测到xx应用多次异常退出,建议卸载”问题解决

作者: Duzzi | 来源:发表于2019-09-29 15:46 被阅读0次

    最近一次迭代上线后,用户反馈在华为P30mate 20 pro等较新的手机上打开app出现了“系统检测到xx应用多次异常退出,建议卸载”的弹窗,但是从用户使用感知的角度来看“似乎”是没有崩溃的。一开始我是抗拒的,不过既然会弹出这样的提示还是先看看日志找找原因吧!
    不同手机提示还不一样,有的手机提示xxxx屡次停止,有的手机提示xxxx已停止运行,oppo应用市场提示“使用时可能会出现闪退的问题

    问题定位

    在华为云测的mate 20 pro机器上复现了这个现象,通过查看日志,友盟的channel进程中applicationonCreate中的某个初始化报了NullPointerExceptionchannel进程挂掉并不会导致主进程挂掉

    集成过友盟推送的应该都知道,友盟推送会有一个channel进程,而多进程启动会导致applicationoncreate的再次调用,所以在做多进程Application初始化的时候要特别小心,不仅要避免不必要的资源加载,还要额外注意全局context的引用。

    这里报了NullPointerException的原因就是只在主进程的Application中创建了全局的context,在channel进程中没有初始化全局context,然后调用context.getSharedPreferences的报了NullPointerException,而这个context.getSharedPreferences实际上应该只在主进程调用,不应该在channel进程调用!

    问题解决

    • 普通解决:context.getSharedPreferences只放在主进程初始化就行了。
    • 终极解决:华为渠道不使用友盟推送,因为我们项目里已经集成了华为推送,集成友盟推送多此一举!

    总结

    • 通过这次线上问题可以看出,如果应用出现了异常提示,不要怀疑,一定是你的代码有问题,平时写代码的时候要格外注意。
    • 这次的异常提示只在部分华为手机上出现,因为华为不同手机EMUI版本不一致,framework层做的修改也不一致,所以导致只在部分华为手机出现。
    • 能复现尽量复现,查日志定位问题。没有莫名其妙的bug,只有导致bug的代码。

    相关文章

      网友评论

          本文标题:华为手机提示“系统检测到xx应用多次异常退出,建议卸载”问题解决

          本文链接:https://www.haomeiwen.com/subject/ljwtpctx.html