原因分析:
开发过程中,遇到了栈溢出这个问题,一般来说可以从下面几个方面进行排查
1、首先查看报错的地方是否存在无限制的递归或者死循环的代码逻辑,一般来说都是这个原因导致的。
2、注意多线程的并发数量,因为每个线程都会申请独立的栈空间。不加以控制的话可能上百条线程一起把JVM限定的栈空间给消耗完。
3、layout布局嵌套太深,也有可能导致栈溢出这个问题。
对应解决方案
1、一定要对递归和死循环中添加 调用次数限制,比如说 ,等调用次数大于10次就终止递归或者循环。
2、尽量不要使用 new Thread() 来开启线程,尤其是在一些循环中,尽量使用ThreadPoolExecutor线程池来生成线程。
3、Layout布局尽量控制到5层以下,尽量使用ConstaintLayout,Relativelayout等布局,include 、merge等标签。