Исключение OutOfMemory при использовании Kotlin :: class.java.canonicalName

Я получаю исключение из памяти при запуске этой строки кода

private val TAG = KotlinFilePicker()::class.java.canonicalName 

и когда он работает, он отлично работает

 Throwing OutOfMemoryError "Failed to allocate a 170 byte allocation with 68 free bytes and 68B until OOM" (recursive case) 01-04 00:14:55.044 20584-20584/com.androidbuffer.kotlinfilepickersample E/art: "main" prio=5 tid=1 Runnable 01-04 00:14:55.044 20584-20584/com.androidbuffer.kotlinfilepickersample E/art: | group="main" sCount=0 dsCount=0 obj=0x7581c250 self=0xb4f07800 01-04 00:14:55.044 20584-20584/com.androidbuffer.kotlinfilepickersample E/art: | sysTid=20584 nice=-11 cgrp=apps sched=0/0 handle=0xb6fd7ec8 01-04 00:14:55.044 20584-20584/com.androidbuffer.kotlinfilepickersample E/art: | state=R schedstat=( 0 0 0 ) utm=1394 stm=35 core=1 HZ=100 01-04 00:14:55.044 20584-20584/com.androidbuffer.kotlinfilepickersample E/art: | stack=0xbe57a000-0xbe57c000 stackSize=8MB 01-04 00:14:55.044 20584-20584/com.androidbuffer.kotlinfilepickersample E/art: | held mutexes= "mutator lock"(shared held) 01-04 00:14:55.044 20584-20584/com.androidbuffer.kotlinfilepickersample E/art: at android.support.v4.app.FragmentHostCallback.<init>(FragmentHostCallback.java:46) 01-04 00:14:55.044 20584-20584/com.androidbuffer.kotlinfilepickersample E/art: at android.support.v4.app.FragmentHostCallback.<init>(FragmentHostCallback.java:63) 01-04 00:14:55.044 20584-20584/com.androidbuffer.kotlinfilepickersample E/art: at android.support.v4.app.FragmentActivity$HostCallbacks.<init>(FragmentActivity.java:871) 01-04 00:14:55.044 20584-20584/com.androidbuffer.kotlinfilepickersample E/art: at android.support.v4.app.FragmentActivity.<init>(FragmentActivity.java:100) 01-04 00:14:55.044 20584-20584/com.androidbuffer.kotlinfilepickersample E/art: at android.support.v7.app.AppCompatActivity.<init>(AppCompatActivity.java:61) 01-04 00:14:55.044 20584-20584/com.androidbuffer.kotlinfilepickersample E/art: at com.androidbuffer.kotlinfilepicker.KotlinFilePicker.<init>(KotlinFilePicker.kt:19) 01-04 00:14:55.044 20584-20584/com.android 

может кто-то указать, что не так делает

Разве это не должно быть

 private val TAG = KotlinFilePicker::class.java.canonicalName 

вместо?

Поскольку ваш stacktrace утверждает следующее:

 Failed to allocate a 170 byte allocation with 68 free bytes and 68B until OOM" (recursive case) 

Это означает, что мы имеем бесконечную рекурсию. Более подробно рассмотрим код, мы видим, что вы создаете экземпляр класса, который пытается создать свойство TAG , которое, в свою очередь, создает еще один экземпляр KotlinFilePicker … пока вся память не исчерпается.

Вы создаете новый KotlinFilePicker() которого есть собственный TAG, который создает новый KotlinFilePicker() ect.

Чтобы исправить это, используйте KotlinFilePicker::class.java.canonicalName .

Intereting Posts
(Java + Kotlin) Autowiring: ожидается не менее 1 бит, который квалифицируется как кандидат на автоподключение для этой зависимости Почему строка json null, когда я передаю внутренний объект Gson (). ToJson (object) в Kotlin? Сбой приложения Android-секундомера Неопределенная ссылка: DaoSession с использованием greendao и kotlin Неразрешенная ссылка: kotlinx – Kotlin 1-0-0-rc-1036 Является ли var str: String изменчивым или неизменяемым? Kotlin: передать массив методу varargs с оператором распространения Комната Kotlin: У сущностей и Pojos должен быть полезный публичный конструктор Список несоответствий типа Kotlin <Any> и List <Comparable <{com.cognitect.transit.Symbol & com.cognitect.transit.Keyword}>?> Как установить прослушиватель движения для существующего вида Невозможно разрешить моему приложению использовать обратную связь над другими правами на приложения Импортировать библиотеки зависимостей в терминале kotlinc Файл Kotlin против класса. Какая разница? Любой способ рассказать компилятору Kotlin о том, что ранее вызываемая функция уже проверила значение null Можно ли включить переменную в тело условия while для Kotlin?