栈内存溢出: java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Try again

在这里插入图片描述

项目场景:

Android APP开发


问题描述:

华为Mate40手机上莫名其妙的闪退。
Log如下:

11-10 18:05:17.671 31217 31217 E AndroidRuntime: java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Try again
11-10 18:05:17.671 31217 31217 E AndroidRuntime: 	at java.lang.Thread.nativeCreate(Native Method)
11-10 18:05:17.671 31217 31217 E AndroidRuntime: 	at java.lang.Thread.start(Thread.java:893)
11-10 18:05:17.671 31217 31217 E AndroidRuntime: 	at com.android.volley.RequestQueue.start(RequestQueue.java:152)
11-10 18:05:17.671 31217 31217 E AndroidRuntime: 	at com.gistandard.androidbase.http.extension.VolleyEx.newRequestQueue(VolleyEx.java:89)
11-10 18:05:17.671 31217 31217 E AndroidRuntime: 	at com.gistandard.androidbase.http.extension.VolleyEx.newRequestQueue(VolleyEx.java:101)
11-10 18:05:17.671 31217 31217 E AndroidRuntime: 	at com.gistandard.androidbase.http.BaseTask.excute(BaseTask.java:108)
11-10 18:05:17.671 31217 31217 E AndroidRuntime: 	at com.jiqid.ipen.view.fragment.HighLightFragment.loadRemoteData(HighLightFragment.java:165)
11-10 18:05:17.671 31217 31217 E AndroidRuntime: 	at com.jiqid.ipen.view.fragment.HighLightFragment.initData(HighLightFragment.java:89)
11-10 18:05:17.671 31217 31217 E AndroidRuntime: 	at com.jiqid.ipen.view.fragment.base.BaseFragment.onViewCreated(BaseFragment.java:81)
11-10 18:05:17.671 31217 31217 E AndroidRuntime: 	at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1471)
11-10 18:05:17.671 31217 31217 E AndroidRuntime: 	at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)

原因分析:

初次看见此问题特别懵逼,这也会出现闪退? 冷静冷静。。。 java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Try again 栈内存溢出,于是根据log显示找到对应的代码 原来是创建RequestQueue没有做单例,导致每次Http请求都会重新创建,华为手机上阈值设置的特别小,所以当请求偏多的情况下很容易出现OOM。

在这里插入图片描述

解决方案:

既然问题已经定位到,那么解决起来就很简单,将RequestQueue的创建设置成全局单例,以保证每次Http请求过来不会一直创建。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值