#android #kotlin
Я обращаюсь к базе данных получаю ответ в json и процессе того как обрабатывается возникает ошибка. Я новичок в Android и прошу вашей помощи, с такой ошибкой сталкиваюсь впервые и честно говоря так и не понял как её исправить. Код обработки: // получаем ответ от php запроса в формате json try { val reader = BufferedReader(InputStreamReader(`is`, "UTF-8"), 8) val sb = StringBuilder() line = reader.readLine() while (line != null) { sb.append(line + "\n") } `is`?.close() result = sb.toString() Log.e("pass 2", "connection success$result") } catch (e: Exception) { Log.e("Fail 2", e.toString()) } Ошибка: E/AndroidRuntime: FATAL EXCEPTION: Thread-42 Process: ru.ifr0z.fabuserlocation.example, PID: 20957 java.lang.OutOfMemoryError: Failed to allocate a 486539272 byte allocation with 25165824 free bytes and 149MB until OOM, max allowed footprint 271163448, growth limit 402653184 at java.util.Arrays.copyOf(Arrays.java:3260) at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:125) at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:451) at java.lang.StringBuilder.append(StringBuilder.java:137) at ru.ifr0z.fabuserlocation.example.TestZaps.run(TestZaps.kt:59) I/Process: Sending signal. PID: 20957 SIG: 9 Application terminated. Ещё я был бы очень признателен если бы мне кто подсказал что это значит пытался загуглить это, но информации никакой толком не нашёл, данные логи идут аккурат перед ошибкой о утечки памяти: E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008] E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008] E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008] E/LocationManager: thread is not runable, msg ignore, state:WAITING, pkg:ru.ifr0z.fabuserlocation.example E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008] E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008] E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008] E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008] E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008] E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008] E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008] E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008] E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008] E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008] E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008] E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
Ответы
Ответ 1
Вы прочитали из потока одну строку и в цикле пихаете её (одну и ту же) в билдер до потери памяти:). Я Котлин знаю очень из далека, но на en-SO советуют читать поток таким кодом: val allText = inputStream.bufferedReader().use(BufferedReader::readText) Источник
Комментариев нет:
Отправить комментарий