Как долго свойство String может находиться в Котлине?

Я создал простой вспомогательный класс Base64Images который содержит это тело:

 companion object{ val ABSTRACT_COLORS = "[image encoded in base64]" } 

ABSTRACT_COLORS – фактически строка, имеющая 570438 символов.

Во время компиляции я получил:

 org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Failed to generate property ABSTRACT_COLORS ... ... The root cause was thrown at: ByteVector.java:213 at org.jetbrains.kotlin.codegen.MemberCodegen.genFunctionOrProperty(MemberCodegen.java:205) Caused by: java.lang.IllegalArgumentException 

Я думал, что могу хранить 2147483647 (2 31 – 1) символов в строке.

Почему это?

Я разместил этот снимок ниже.
Вы можете использовать этот инструмент для генерации base64.

Подсказка: редактирование этого класса или компиляция проекта замораживает Android Studio.
Я бы использовал небольшой редактор для редактирования и терминал, чтобы скомпилировать его.

введите описание изображения здесь

    Как упоминалось в комментарии от @ mfulton26, что-то происходит с компилятором при загрузке строки. Ошибка сбоя, о которой следует сообщать трекеру Kotlin .

    В качестве рабочего процесса вы можете добавить это как файл в каталог src/main/resources и загружать строку динамически либо как String либо как ByteArray .

    Например, если файл был src/main/resources/abstract-colors.txt вы можете прочитать весь файл в строке :

     val ABSTRACT_COLORS = javaClass.getResourceAsStream("/abstract-colors.txt") .bufferedReader().use { it.readText() } 

    Если вы не нуждаетесь в кодировке base64, вы можете сохранить изображение как двоичное и прочитать его в ByteArray .

     val ABSTRACT_COLORS = javaClass.getResourceAsStream("/abstract-colors.jpg") .use { it.readBytes() } 
    Intereting Posts
    Использование JPA + H2 с Spring Boot + Kotlin – Загрузка с ошибкой неразрешенная ссылка на класс, методы Использование синтетических свойств Котлина Как хранить временную переменную при инициализации объекта Kotlin? Использование kotlin-stdlib 1.1.51, но загрузка kotlin-runtime 1.3 Почему у Kotlin есть два синтаксиса для lambdas / анонимных функций? Intellij IDEA не добавляет зависимости maven к пути класса kotlin script classpath Поддержка Spring WebFlux и Kotlin: как сделать интеграционные тесты? Невозможно включить предупреждение «тип платформы объявлений» Kotlin в сообщение об ошибке java https: // localhost (SSL) – возможно без установки сертификатов на клиенте? Многострочный / сложный инициализатор свойств без лямбда Как заменить FrameLayout фрагментом на Kotlin на Android Kotlin: Обновление элемента неизменяемого списка Дифференцировать неоднозначные расширения в Котлине Kotlin: зачем использовать абстрактные классы (vs. интерфейсы)?