2017-01-03 6 views
1

У меня есть странная проблема с памятью, которую я не могу решить. Я считаю, что у меня может быть проблема с обработкой websocket, но я не уверен, почему и где. Я попытался взять дамп памяти с Android Monitor, но, похоже, я не понимаю эту проблему. Я попытался добавить android: largeHeap = "true".Android Out of Memory

Я понятия не имею, куда идти оттуда и как бороться с этой проблемой или что проверить. Есть ли у вас какие-либо предложения в отношении того, что я могу сделать? Я использую firebase для регистрации ошибок в производстве, где я также получить эти стеки ошибок, когда ошибка происходит:

Exception java.lang.OutOfMemoryError: Failed to allocate a 916 byte allocation with 8388608 free bytes and 369MB until OOM; failed due to fragmentation (required continguous free 65536 bytes for a new buffer where largest contiguous free 32768 bytes) 
java.nio.CharBuffer.allocate (CharBuffer.java:54) 
java.nio.charset.CharsetDecoder.allocateMore (CharsetDecoder.java:226) 
java.nio.charset.CharsetDecoder.decode (CharsetDecoder.java:188) 
org.java_websocket.util.Charsetfunctions.stringUtf8 (Charsetfunctions.java:77) 
org.java_websocket.WebSocketImpl.decodeFrames (WebSocketImpl.java:375) 
org.java_websocket.WebSocketImpl.decode (WebSocketImpl.java:158) 
org.java_websocket.client.WebSocketClient.run (WebSocketClient.java:185) 
java.lang.Thread.run (Thread.java:818) 

Я понимаю, этот вопрос является расплывчатым, но я был бы признателен только предложения, куда идти дальше.

+1

Проверьте [мой ответ здесь] (http://stackoverflow.com/a/14775184/995926). Это вам поможет? – rekire

+0

. Любое предложение приветствуется :) – gorgi93

+1

что такое сообщение с сервера? похоже, что вы пытаетесь выделить очень большое строковое сообщение, которое вызывает сбой –

ответ

1

Попробуйте добавить эти строки в манифесте

android:hardwareAccelerated="false" , android:largeHeap="true" 

он работает в некоторых ситуациях.

+0

забыл упомянуть, что я уже пробовал. – gorgi93