例外Java.lang.outofmemoryerror:无法分配65548字节分配,用55872免费字节和54kb分配



有很多类型的错误问题,但是我无法找到错误的解决方案发生此错误。我的应用程序目前已直播,并安装在50k活动设备上,我通过火箱遇到了这个错误,并且发生了很多次。

 Exception java.lang.OutOfMemoryError: Failed to allocate a 65548 byte allocation with 55872 free bytes and 54KB until OOM
com.android.okhttp.okio.Segment.<init> (Segment.java:62)
com.android.okhttp.okio.SegmentPool.take (SegmentPool.java:46)
com.android.okhttp.okio.Buffer.writableSegment (Buffer.java:1114)
com.android.okhttp.okio.InflaterSource.read (InflaterSource.java:66)
com.android.okhttp.okio.GzipSource.read (GzipSource.java:80)
com.android.okhttp.okio.RealBufferedSource$1.read (RealBufferedSource.java:374)
bmr.a (:com.google.android.gms.DynamiteModulesC:95)
bmk.a (:com.google.android.gms.DynamiteModulesC:1055)
bmq.a (:com.google.android.gms.DynamiteModulesC:5055)
bmq.run (:com.google.android.gms.DynamiteModulesC:54)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1113)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:588)
java.lang.Thread.run (Thread.java:818)

似乎您尝试通过" Okhttp"上传文件。如果是,请尝试使用" filepath"而不是"文件"作为param。

似乎您尝试解压缩一个大文件,一个文件如此之大,以至于所有设备的内存都花在了。每个设备上可用的内存都不同。如果可能,请尝试将文件分为较小的块并单独处理。另外,尝试使用流媒体解决方案,您可以在其中使用流进行解压缩,而不是在启动UNZIP之前将整个文件加载到内存中。

尝试以下操作:使用流或读取文档在此处解开:gzupinputstream

只需删除httplogginginterceptor.level.body

最新更新