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 语言教程中给出的Object 示例 也没有提供类似的运行时异常。

我知道问题是由于冻结的物体造成的。但是我找不到修改单例对象的冻结成员的正确方法。

4

1 回答 1

2

经过一番搜索,我得到了答案。我们可以使用Atomic Reference更新冻结的对象。

于 2019-06-12T14:33:20.363 回答