私はこの体を含む単純なBase64Images
ヘルパークラスを作成しました:Kotlinではどのくらいの長さの文字列プロパティを使用できますか?
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がフリーズします。
コンパイルするために軽いエディタを使って編集してください。 @ mfulton26文字列をロードするときに何かがコンパイラで起こっていることによって、コメントで述べたように
これはコンパイルのバグのようです。例えばコンパイラーに十分なメモリーが割り当てられていないために失敗した場合、スローされた例外はそのように述べるべきです(そうではありません)。 https://youtrack.jetbrains.com/issues/KTで問題を報告することをお勧めします。オンラインでkotlinコンパイラが割り当てたメモリなどを増やす方法を探しているかもしれません。 – mfulton26