2017-04-24 4 views
-3

이 오류와 같은 유형의 질문이 너무 많지만 내 오류에 대한 해결책을 찾을 수 없습니다. 내 다른 장치를 점검했지만이 오류가 발생한 위치를 정확히 찾을 수 없었습니다. 내 응용 프로그램은 현재 라이브로 50k 액티브 장치에 설치되어 있습니다.이 오류가 내 firebase를 통해 발생하고 여러 번 발생합니다.예외 java.lang.OutOfMemoryError : 55872 여유 바이트 및 OOM까지 54KB의 65548 바이트 할당을 할당하지 못했습니다.

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) 
+1

메모리가 부족합니다. 누적 문제 때문에 스택 추적 결과를 알 수있는 방법이 없습니다. 앱을 실행하고 힙 덤프를 가져 와서 메모리 누수를 찾아야합니다. –

+0

이 오류가 발생하는 곳의 활동 코드를 붙이십시오 – Sonam

답변

0

당신이 잎파리, A와 대신 "파일"의 "파일 경로"를 사용하려고 "okhttp"로 파일을 업로드하려고 것 같다 param.

+0

캐치 폴더에 이미지 및 비디오 파일을 다운로드 중입니다. 해결책을 확인하고 답변을 드릴 것입니다. – Ahmed

+0

그래, 비트 맵, 파일 등을 포함하는 인터페이스를 가진 객체를 실제로 전송하고있다. 문제가 있다고 생각한다. – Ahmed

+0

asynchttp.Finally로 파일을 업로드 할 때 비슷한 문제가 생겼다. File 객체 , 전체 파일은 byte []로 캐시되고 OOM이 발생할 수 있습니다. 그러나 String 파일 경로를 사용하면 파일이 부분적으로 읽혀집니다. –

0

큰 파일의 압축을 풀어 너무 큰 파일로 모든 장치의 메모리가 사용 된 것처럼 보입니다. 사용 가능한 메모리는 각 장치마다 다릅니다. 가능하면 파일을 작은 청크로 분할하여 개별적으로 처리하십시오. 다른 방법으로 압축 해제를 시작하기 전에 전체 파일을 메모리에로드하는 대신 스트림을 사용하여 압축을 풀 수있는 스트리밍 솔루션을 사용해보십시오. 여기에 문서를 Unzip using a stream를 또는 읽기 :

이 시도 GZUPInputStream

+0

캐치 폴더에 이미지 및 비디오 파일을 다운로드 중입니다. – Ahmed