gpt4 book ai didi

android - Kotlin 中的 String 属性可以有多长?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:58:17 25 4
gpt4 key购买 nike

我创建了简单的 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 (231 - 1)字符串中的字符。

这是为什么?

我在下面发布了这张图片。
您可以使用 this tool生成 base64。

提示:编辑此类或编译项目会卡住 Android Studio。
我会使用一些轻量级的编辑器来编辑和终端来编译它。

enter image description here

最佳答案

正如@mfulton26 在评论中提到的那样,编译器在加载字符串时发生了一些事情。应报告给 Kotlin issue tracker 的崩溃错误.

作为变通方法,您可以将其作为文件添加到您的 src/main/resources 目录中,并以 String 的形式动态加载字符串>字节数组

例如,如果文件是src/main/resources/abstract-colors.txt,你可以read the entire file into a string :

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() }

关于android - Kotlin 中的 String 属性可以有多长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39573984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com