Кодовое имя одного размера памяти для обработки изображений? - PullRequest
0 голосов
/ 14 сентября 2018

Мой Senario выглядит следующим образом, у меня есть форма, где мне нужно, чтобы пользователь прикрепил изображения, которые он берет с камеры [количество зависит от форм - у меня много случаев-] приложение отображает предупреждение о нехватке памяти [на некоторых устройствах я видел его (Samsung A5 [выпуск 2015 г.], Xiaomi Note 4)

Exception: java.lang.OutOfMemoryError - Failed to allocate a 16894 byte allocation with 11344 free bytes and 11KB until OOM

и несколько раз при загрузке карты

Process: com.x.y, PID: 17227
java.lang.OutOfMemoryError: Failed to allocate a 65548 byte allocation with 14824 free bytes and 10KB until OOM
    at com.android.okhttp.okio.Segment.<init>(Segment.java:62)
    at com.android.okhttp.okio.SegmentPool.take(SegmentPool.java:46)
    at com.android.okhttp.okio.Buffer.writableSegment(Buffer.java:1114)
    at com.android.okhttp.okio.Buffer.write(Buffer.java:940)
    at com.android.okhttp.okio.RealBufferedSink$1.write(RealBufferedSink.java:197)
    at java.io.DataOutputStream.write(DataOutputStream.java:107)
    at java.io.FilterOutputStream.write(FilterOutputStream.java:97)
    at ez.a(:com.google.android.gms.dynamite_mapsdynamite@13280047@13.2.80 (040308-211705629):15)
    at ez.a(:com.google.android.gms.dynamite_mapsdynamite@13280047@13.2.80 (040308-211705629):83)
    at ep.b(:com.google.android.gms.dynamite_mapsdynamite@13280047@13.2.80 (040308-211705629):2)
    at eo.a(:com.google.android.gms.dynamite_mapsdynamite@13280047@13.2.80 (040308-211705629):4)
    at eq.a(:com.google.android.gms.dynamite_mapsdynamite@13280047@13.2.80 (040308-211705629):55)
    at com.google.maps.api.android.lib6.drd.ap.a(:com.google.android.gms.dynamite_mapsdynamite@13280047@13.2.80 (040308-211705629):11)
    at dx.a(:com.google.android.gms.dynamite_mapsdynamite@13280047@13.2.80 (040308-211705629):17)
    at dx.run(:com.google.android.gms.dynamite_mapsdynamite@13280047@13.2.80 (040308-211705629):65)

код, который используется для захвата и съемки изображения и сохранения в нем массива изображений

String filePath = Capture.capturePhoto();
applicationAttachment[index] = temp;    
applicationAttachment[index].setImageName(labelName.substring(0, labelName.length()-"Label".length()));

Мой вопрос здесь, как я могу обработать изображение на основе доступной памяти, если это возможно ??

...