2

Kotlin ネイティブ linuxX64 ターゲット サポートをいくつかの既存のライブラリに追加しています。ライブラリは正常にコンパイルされますが、テスト ケースの実行中に次のランタイム エラーが発生します。

kotlin.native.concurrent.InvalidMutabilityException: mutation attempt of frozen kotlin.Array@1249428
    at kfun:kotlin.Exception.<init>(kotlin.String?)kotlin.Exception (0x271205)
    at kfun:kotlin.RuntimeException.<init>(kotlin.String?)kotlin.RuntimeException (0x2711c5)
    at kfun:kotlin.native.concurrent.InvalidMutabilityException.<init>(kotlin.String)kotlin.native.concurrent.InvalidMutabilityException (0x272595)
    at ThrowInvalidMutabilityException (0x3b0b53)
    at  (0x3b5733)

Kotlin 言語チュートリアルで提供されているオブジェクトの例でさえ、 同様のランタイム例外を与えることに取り組んでいません。

問題は凍結したオブジェクトが原因であることはわかっています。しかし、シングルトン オブジェクトの凍結されたメンバーを変更する適切な方法が見つかりませんでした。

4

1 に答える 1

2

少し検索したところ、答えが得られました。Atomic Referenceを使用して、凍結されたオブジェクトを更新できます。

于 2019-06-12T14:33:20.363 に答える